3

別の形式のバックアップから、新しい MySQL 構造 (UTF-8 サポート用に正しくセットアップされている) に復元しました。ブラウザーに奇妙な文字が表示されていますが、それらが何と呼ばれているかは不明であるため、それらが何に変換されるかのマスター リストを見つけることができます。

実際、それらは特定のキャラクターと相関していることに気付きました。例えば:

â„¢ always translates to ™
— always translates to —
• always translates to ·

この投稿を参考にして始めましたが、これは完全なリストにはほど遠いものです。正しい名前を探していないか、参照としてのこれらの悪いから良いへの変換の「マスターリスト」が存在しません。

参考: MySQL で utf8 の壊れた文字を検出する

また、MySQL クエリを介して検索しようとするときに、â を検索すると、MySQL は常に「a」として処理します。MySQL クエリを微調整して、より文字通りの検索になるようにする方法はありますか? 私たちは国際化をあまり使用していないので、â 文字を含むフィールドは問題のあるエントリと見なされ、作成中の "fixit" スクリプトで修正する必要があると考えて間違いありません。

4

1 に答える 1

2

このデータを通過して置き換える「修正」スクリプトを設計する代わりに、問題を直接修正する方がよいと思います。データは元々 UTF-8 とは異なる形式で保存されていたようで、 用に設定されたテーブルにデータを取り込むとUTF-8、テキストが文字化けしました。機会があれば、元のバックアップに戻って、データが保存されていた形式を特定します。それができない場合は、データがどの形式であるかを判断するために試行錯誤を行う必要があります。しかし、それがわかれば、変換は簡単です。次の記事の修復に関するセクションをお読みください。

http://www.istognosis.com/en/mysql/35-garbled-data-set-utf8-characters-to-mysql-

基本的に、列をBINARYに設定してから、元の文字セットに設定します。これにより、テキストが適切に表示されるはずです (正しい文字セットを使用していることを確認するための良いチェックです)。それが完了したら、列を に設定しますUTF-8。これにより、データが適切に変換され、現在発生している問題が修正されます。

于 2011-05-13T05:17:21.297 に答える