データベースがあり、Navicat を使用しています。数年前の単純な PHP Web サイトがあり、サイトを UTF8 にアップグレードしました。
サイトには UTF8 の特殊文字を完全に処理する「アクティビティ」がありますが、サイトには「コメント」もあり、カーリーな一重引用符やその他の特殊文字は � を示します。
データベースは次の方法で UTF に変換されました。
ALTER TABLE tablename CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;
Navicat で両方のデータベースを見ると、両方とも と であることがわかりUTF8
ますutf8_general_ci
。
テーブルをデザインすると、「アクティビティ」テーブルが表示され、セルが mediumText であり、UTF8 で設定されていることがわかります。「コメント」セクションを設計すると、機能しないセルはブロブであり、文字エンコーディング情報がありません。
非常に基本的な SELECT を実行し、$vairable[column] を介して表示しています。
「アクティビティ」がUTF8で完全に機能し、「コメント」に問題がある理由を知っている人はいますか? 私たちはどちらにも特別なことをしていません。
Blob をテキスト フィールドに変換しようとしましたが、そうすると、ページに出力するときにデータベースがエスケープするため、テキストに単一引用符があるとすぐに切断されます。
私は utf8_encode、stripslashes、mysql_real_escape_string、htmlentities、htmlspecialchars などを試しましたが、いずれにしても役立つかどうかはわかりません。
ありがとう!