1
* .CSVファイルを読み込んだスクリプトがあり、その内容をMSSQLデータベースにエクスポートします。スクリプトはCLI経由でのみ実行されます。CSVインポート時の特殊文字コード
私の問題は、このCSVファイルには、ą,ó,ż,ź,ś
のような国別文字列が含まれていることです。たとえば、私は単語pracowników
を持っていますが、CLIで私は単語pracownikˇw
を参照してください。働いていない - 私はsetlocale
の有無にかかわらずfgetcsv
を使用して
- を試してみました何
私のコード
$handler = fopen($file, "r"); if ($handler !== false) { while (($this->currentRow = fgetcsv($handler, 0, $this->csvDelimiter)) !== false) { $row = $this->setHeaders( $this->currentRow, $this->config[$type]['columnMapping'] ); if ($row !== false) { $this->dataImported[$type][] = $row; } } fclose($handler); }
。
fgetcsv
をfgets
に置き換え、各行をstr_getcsv
で読み取ってください。 - 動作しません。- 各行に
utf8_encode
を使用すると動作しません。
追加情報
- は私のPHP(PHP5.3)と、このファイルは
ANSII
でエンコードされているいくつかの編集者によると、私はiconv
でそれをデコードしようとしましたが、すべての特殊文字はいつもと交換されています前に示したようないくつかの奇妙な記号。
不要な変換は、読み込み時または挿入時に正確に行われますか? ... – Jakumi
@Jakumiファイル読み込み直後の未解決の変換の出来事 – TomTom
CLIで*正しく読み込むと、ロケールは 'chcp'でこれらの文字をサポートするものに変更されますが、ユニコードのサポートは非常に限られていることに注意してください。しかし、おそらく問題は、他のアプリもそれを読むのに問題がある場合、データベースの正しい連合とエンコーディングを設定する必要があるということです。 – Xorifelse