0

さまざまな言語の csv 文字から挿入します。

これをすべての文字セットに適用します。

    private function process_elements($element){
       utf8_encode($element);
      return $element;
}

問題は、データベースに入るとき、次のようになることです。

???????? ?? ???????????? ????? ??????? ??? ???????...

データベースからそれらを取得すると、これも取得します。

これはギリシャ語で起こります。ただし、utf でエンコードされたページにあるギリシャ語のページを (スクラップによって) 取得すると。文字は次のようになります。

Δες webcam δωμάτια | Gr.ImLive.com

utf8_encode関数を使用すると、画面上で正常に見えるため、これで問題ありません..

しかし、データがcsvから取得されてデータベースに入れられると、それらの疑問符が表示されます..

任意の言語から utf にエンコードする方法はありますか? csv と utf8 でエンコードされた Web ページからデータを取得すると、なぜこのような違いが生じるのでしょうか? それらは同じように見えます.. どうすればその問題に対処できますか?

4

2 に答える 2

2

これを見てください

それはあなたを助けるでしょう

Web アプリで Unicode を前面から背面へ処理する

于 2012-06-13T07:46:50.003 に答える
1

「言語」についてではなく、エンコーディングについてです。テキストはビットとバイトとしてエンコードされます。任意の 1 バイトは他の任意のバイトと同じです。バイトのブロブしかない場合、それが何を表しているのかを知ることはできません。推測できますが、それは正確ではありません。付随するメタデータを読み取ることで、テキストのエンコーディングを知る必要があります。それは、ドキュメント、<meta>タグ、または HTTP ヘッダーである可能性があります。次に、そのエンコーディングでテキストを処理する必要があります。

utf8_encode実際にテキストを ISO-8859-1から UTF-8に変換します。何かがエンコードされているかを判断する手段がないため、単純に何かを UTF-8 にエンコードするわけではありません。テキストがすでに UTF-8 でエンコードされているか、最初から ISO-8859-1 でエンコードされていない場合は、テキストを文字化けしているだけです (そのままです)。

于 2012-06-13T07:57:11.703 に答える