2011-12-06 19 views
1

PHPを使用したCSVファイルのいくつかのキーワードと比較する必要があるいくつかの中国語のキーワードを持つmysqlデータベースがあります。MySQL、PHP、およびCSVファイルのエンコーディング

エンコードに問題があるようですが、私が知っている2つのキーワードを比較すると、同じ(漢字で)わかっていますが、スクリプトには違いがあります。

データベースのスクリプトの冒頭に「SET NAMES utf8」を使用します。 テーブルのキーワードフィールドの照合順序はutf8_binです。私も

mb_internal_encoding("UTF-8"); 
header('Content-Type: text/xml, charset=UTF-8; encoding=UTF-8'); 

を使用するスクリプトの

私はCSVが

$data = fgetcsv($handle, 1000, ",")) !== FALSE 

でファイルを読み、私の比較ラインは私が持っているCSVファイルについては、この

$database_keyword == CSV_keyword 

のようなものですnotepad ++を使用してエンコードを変更しようとしましたが、まだ動作していません。

ありがとうございます。

編集:それはそこに誰かを助けるかもしれない 溶液を添加し、私は私の問題は、CSVファイルから文字列に含まれているBOMによって引き起こされたことが判明:私は

のWindows 7上でEDITしています。 私はこの機能

private function rmBOM($string) { 
     if(substr($string, 0,3) == pack('CCC',0xef,0xbb,0xbf)) { 
      $string=substr($string, 3); 
     } 
     return $string; 
    } 

答えて

0

私はLinux上で通常動作するので、私はWindows上での経験が限られているを使用して削除するために管理しますが、私は別の文字セット(エンコード)を扱う統合プロジェクトに取り組んできました。

  1. データベース接続がUTFモードであることを確認してください。このdocumentをご覧ください。
  2. csvファイルがUTFであることを確認してください。 iconv()関数で強制的に変換することができます。
+0

ありがとう、私はそれを試みます。 – Jon

関連する問題