私はcsvファイルをphp/mysqlシステムにインポートする機能を提供したいのですが、UTF-16タブでコード化されたタブファイルでしか保存できないロシア語の言語ではエンコーディングに関する問題が発生しました。ユニコードのcharsetを持つxls/csvファイルをphp/mysqlにインポートするには?
私のデータベースはlatin1ですが、質問に記載されているようにutf-8に変更します。 "a-script-to-change-all-tables-and-fields-to-the-utf-8- bin-collation-in-mysql "
しかし、ファイルをどのようにインポートする必要がありますか?文字列を格納しますか?
たとえば、html_entititesに変換する必要がありますか?
私はfgetcsv
コマンドを使用して、csvファイルからデータを取得しています。 私のコードは今のところこのように見えます。注意点としては
file_put_contents($tmpfile, str_replace("\t", ";", file_get_contents($tmpfile)));
$filehandle = fopen($tmpfile,'r');
while (($data = fgetcsv($filehandle, 1000, ";")) !== FALSE) {
$values[] = array(
'id' => $data[0],
'type' => $data[1],
'text' => $data[4],
'desc' => $data[5],
'pdf' => $data[7]);
}
私はExcelでCSVとしてXLSファイルを保存する場合は、私の特別な文字は「_」に置き換えられているので、私は、ファイルのうち、ロシア文字を得ることができる唯一の方法は、格納することですファイルをUTF16形式のタブ付き分離ファイルとしてExcelに保存します。
を使用することです。唯一の違いは、私はタブ区切り文字を使用して、私のファイルをつかむことでしたloadコマンドはutf16をサポートしていません ドキュメント: "現在、ucs2、utf16、またはutf32文字セットを使用するデータファイルをロードすることはできません。 " –
私はドキュメントのその部分を見逃しました、ごめんなさい。 :( MySQLのようなサウンドは一般的にutf16に問題があるので、あなたのコードでutf16からutf8に変換する必要があるかもしれません。すでに質問されているように、SO(http:// stackoverflow。mb_convert_encoding関数は、http:// www。com/questions/155514/how-to-convert-a-utf-8-string-to-a-utf-16-string-in-php) php.net/manual/en/function.mb-convert-encoding.php) – toluju
私はあなたに関連するトピックでこの質問を見てもらえますか?http://stackoverflow.com/questions/11116963/bangla-language- unicoded-in-unicoded-csv-file –