ホームページ >バックエンド開発 >PHPチュートリアル >MySQL データベースで Latin1 文字を UTF-8 に正しく変換するにはどうすればよいですか?

MySQL データベースで Latin1 文字を UTF-8 に正しく変換するにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-11-03 20:22:29451ブラウズ

How to Correctly Convert Latin1 Characters to UTF-8 in a MySQL Database?

UTF-8 テーブル内の Latin1 文字を UTF-8 に変換します

エンコーディングの不一致:

PHP と MySQL のエンコード設定間の不整合により、UTF-8 で発音区別記号が正しく保存されない テーブル。新しい挿入は正しくなりましたが、古い行には依然として破損した文字が含まれています。

修正措置:

この問題を修正するには、MySQL の Convert() 関数を利用します。

<code class="sql">convert(cast(convert(name using  latin1) as binary) using utf8)</code>

この関数は、Latin1 でエンコードされたデータを UTF-8 に変換します。二重変換により、変換プロセス中にデータが切り捨てられなくなります。

使用例:

コード内で、更新クエリ内で変換を適用します:

<code class="sql">mysql_iquery('UPDATE `table` SET `name`="'.mysql_real_escape_string(convert(cast(convert(name using  latin1) as binary) using utf8)).'" WHERE `a1`="'.$row['a1'].'"');</code>

これにより、テーブル内の名前列が正しく変換された UTF-8 で更新されます。文字。

注:

エンコード変換中のデータ変更によっては、クエリから内部変換関数を省略する必要がある場合があります。両方のシナリオをテストし、望ましい結果が得られる方を採用します。

以上がMySQL データベースで Latin1 文字を UTF-8 に正しく変換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。