Home >Backend Development >PHP Tutorial >How to Fix Broken UTF-8 Encoding in PHP and MySQL?

How to Fix Broken UTF-8 Encoding in PHP and MySQL?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-12-04 17:14:10597browse

How to Fix Broken UTF-8 Encoding in PHP and MySQL?

How to Repair Broken UTF-8 Encoding in PHP and MySQL

You've encountered broken UTF-8 encoding in your PHP 5 and MySQL environment, resulting in garbled characters such as "î" on your website. Let's delve into a solution to fix this issue:

Issue Details:

  • MySQL database collation: utf8_general_ci
  • PHP with proper UTF-8 header
  • Notepad utilizing UTF-8 without BOM
  • Database management in phpMyAdmin
  • Affected characters include "î", "í", "ü", and similar characters

Solution:

To rectify the encoding problem, consider using the following approach:

  1. Export the affected database as a dump file using this command:
mysqldump -h DB_HOST -u DB_USER -p DB_PASSWORD --opt --quote-names \
--skip-set-charset --default-character-set=latin1 DB_NAME > DB_NAME-dump.sql
  1. Re-import the dumped data into a new MySQL database with UTF-8 encoding:
mysql -h DB_HOST -u DB_USER -p DB_PASSWORD \
--default-character-set=utf8 DB_NAME < DB_NAME-dump.sql

This process will convert the incorrectly encoded characters into their proper UTF-8 counterparts, resolving the aforementioned encoding issues. The solution provided in the reference blog post has been shown to effectively fix double-encoded UTF-8 data in MySQL, so you can confidently apply it to your situation.

The above is the detailed content of How to Fix Broken UTF-8 Encoding in PHP and MySQL?. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn