次のようなテーブルにデータがあります (SQLYog に基づく):
(1) µéÁâÓ·Óᡧ
しかし、データを読み取っているフォーラム システムが画面に表示すると、次のようになります。
(2) ต้มยำ ทำแกง</p>
2 番目の出力は正しいもの (タイ語) です。
このすべてのデータをプルして新しいデータベース (MongoDB) にインポートするスクリプトを作成していますが、データをプルしてブラウザーにエコーすると、上記の最初の (1) のような出力が得られます。
これを変換して、挿入 (またはブラウザに出力) したときに (2) のように正しく保存および表示されるようにするにはどうすればよいですか?
(2) のようなテキストを出力することはできませんでしたが、html に含めることで (1) のように出力することができました。
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
</head>
そして、データをエコーするとき:
echo iconv('latin1', 'utf-8', $string);
それは本当に単純なものだと確信していますが、これを解決するのに十分なユニコードなどに精通していません! ありがとう!
アップデート
私は今、一歩近づきました。私は呼びました:
mysql_query("SET NAMES 'utf8'");
そして、次のものを使用して(1)を出力できました:
echo $string;
そのため、PHP で iconv を介してこれを行う必要はなく、接続を介して MySQL が latin1 を utf8 に変換していると思います。
ただし、タイ語の文字出力はまだできません。