ホームページ >データベース >mysql チュートリアル >UTF8 MySQL テーブル内の Latin1 文字を UTF8 に正しく変換するにはどうすればよいですか?

UTF8 MySQL テーブル内の Latin1 文字を UTF8 に正しく変換するにはどうすればよいですか?

DDD
DDDオリジナル
2024-12-09 04:29:09782ブラウズ

How Can I Correctly Convert Latin1 Characters in a UTF8 MySQL Table to UTF8?

UTF8 テーブル内の Latin1 文字を UTF8 に変換する

発音記号付きの文字 (例: "Jáuò Iñe") が発生するという問題が発生しました。 ) が欠落しているため、UTF8 テーブルに誤って格納されました。 「mysql_set_charset('utf8')」呼び出し。

これを解決するには、「mb_convert_encoding」と「iconv」を使用して影響を受ける行を変換しようとしています。ただし、これらのメソッドは、最初の「不正な」文字 (この例では「ă」として表されています) を超える文字をキャプチャできません。

データを修正するための推奨されるアプローチは、MySQL 関数を使用することです。

convert(cast(convert(name using  latin1) as binary) using utf8)

説明:

  1. outer 変換関数は、現在のバイナリ表現から UTF-8 文字セットを使用した文字列にデータを変換します。
  2. inner 変換関数は、データを元のデータから変換します。 Latin-1 表現からバイナリ表現へ。
  3. キャスト関数により、内部変換でバイナリが返されることが保証されます。 value.

場合によっては、データが UTF-8 への変換に適したバイナリ形式ですでに格納されている可能性があるため、内部変換が必要ない場合があります。両方のオプションをテストすると、状況に応じた正しいアプローチが決定されるはずです。

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

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