5

utf8テキストを取得するMySQLテーブルを備えたPHPWebアプリがあります。最近、データをlatin1からutf8に、それに応じてテーブルと列とともに変換しました。ただし、mysql_set_charsetを使用するのを忘れており、MySQL接続を介してlatin1として送信されたと思われる最新の受信データを使用していました。latin1がutf8列に入るとどうなるかわかりませんが、コンマ、引用符、アンパサンドなどの項目で奇妙な表示の問題が発生しています。

mysql_set_charsetが配置されたので、ファンキーな文字でデータを引き出しています。正しい文字セットを使用するデータベース接続リソースがあるので、latin1-utf8スープをストレートutf8に変換する方法はありますか?

4

1 に答える 1

4

あなたのコメントで修正を見つけました。これが私の問題を解決したと思われるSQL行です。

UPDATE table SET col = CONVERT(CONVERT(CONVERT(col USING latin1) USING binary) using utf8);

列はUTF8ですが、データをlatin1として引き出し、バイナリに変換し、utf8に変換して、再挿入するように強制します。

于 2010-07-05T16:41:43.790 に答える