1

いくつかのフィールドをギリシャ文字で格納する mysql データベースがあります。私のhtmlにはcharset = utf-8があり、データベースの列はエンコーディングutf_general_ciで定義されています。しかし、これまで接続エンコーディングを設定していませんでした。その結果、ギリシャ文字がうまく表示されないデータベースがありますが、PHP で読み返すと、すべてうまく表示されます。

今、私はこれを正しい方法で行おうとしているので、データベース関数にも追加しました。

     $mysqli->set_charset("utf8");

これは、新しいエントリに最適です。

しかし、既存のエントリの場合、接続エンコーディングが変更されたため、PHP でデータを読み取ると文字化けするという問題があります。

データを修正して再び使えるようにする方法はありますか? 今まで通りのやり方で作業を続けることはできますが、それが間違っていることはわかっており、将来さらに問題が発生する可能性があります。

4

1 に答える 1

0

この問題を次のように解決しました。

  1. PHP スクリプトで、現在行っているように、つまり接続を設定せずに情報を取得します。このようにして、間違いが反転されて修正され、php ファイルに正しい utf-8 形式の文字が含まれます。
  2. 同じ PHP スクリプトで、この時点で接続を utf-8 に設定して情報を書き戻します。データベースには正しい文字が含まれています。
  3. 今後、あなたのサイトのすべての読み取り/書き込み機能を utf-8 を使用するように変更しました
于 2013-05-24T04:54:09.937 に答える