InputStreamReader isr = new InputStreamReader(new FileInputStream(f), "UTF-8");
ルールに従って、指定されたすべての文字がストリームのままで返されます。しかし、それは正常に動作していません。特殊文字を無効な文字列に変換しています。ファイルから読み込んだ後に特殊文字が正しく取り込まれない
入力文字数:メソッドを上から読んだ後éÇüéâäàåçêëèïîìÄÅÉæ
出力:
InputStreamReader isr = new InputStreamReader(new FileInputStream(f), "UTF-8");
ルールに従って、指定されたすべての文字がストリームのままで返されます。しかし、それは正常に動作していません。特殊文字を無効な文字列に変換しています。ファイルから読み込んだ後に特殊文字が正しく取り込まれない
入力文字数:メソッドを上から読んだ後éÇüéâäàåçêëèïîìÄÅÉæ
出力:
これはあなたのストリームであることを意味しますUTF-8ではありません。これは、Windows-1252またはISO 8859-1またはその他のエンコーディングである可能性があります。
読者は、正しく読み込むために、ストリームがエンコードされたエンコードを使用する必要があります。
CSVReaderリーダー=新しいCSVReader(isr、 ';');これは私がデータを読み取るために使用しているものです。私はCSV形式のファイルを持っています –
'isr'が正しく設定されていない場合は問題ありません。あなたのデータはUTF-8としてエンコードされていません。 – Phylogenesis
@VinaySharma:上のPhyloのコメント(および私の答え)を参照してください。明らかに、読み取ろうとしているデータはUTF-8としてエンコードされていません。 –
は、あなたが読んでいるファイルは、UTF-8エンコーディングを持っているか、ファイルのエンコーディングを使用していることを確認してください。また、それはちょうどあなたが出力を書いている方法かもしれません。 –
私はCSVReader reader = new CSVReader(isr、 ';');を使用しています。 –
プログラム内の文字列に入力文字を割り当てて、コンテンツを印刷できるかどうかを確認します。文字列が表示されているコンソールが 'UTF-8'を使用していない可能性があります。 – 11thdimension