2009-07-27 15 views
2

私はcsvファイルを編集する必要がありますが、問題は私のような特殊文字が壊れてしまうことです。CSVファイルを読み取る。特別な文字の問題

相続人は、私のコードのpeiceです:

static void ReadFromFile(){ 

     StreamReader SR = new StreamReader("c:\\Users\\Levy\\Documents\\Vale\\Base\\Desknote.csv", Encoding.Default); 

     StreamWriter SW = new StreamWriter("c:\\Users\\Levy\\Documents\\Vale\\Base\\Desknote_Ed.csv", true, System.Text.Encoding.GetEncoding("Windows-1252")); 

     string S; 
     char C='a'; 
     int i=0; 
     S=SR.ReadLine(); 
     SW.Write(S); 

} 

UPDATING:

まあイムStramreaderオブジェクトにEncoding.Defaultを使用して文字を読み取ることができ。 (私はコンソールに表示することができます)

ライターでISO 8859-1とCP-1252を試しましたが、出力がまだ乱れています。

ありがとうございます

答えて

0

私はキーが本当にエンコーディングだと思います。入力データのテキストエンコーディングとは何ですか?

0

ファイル全体を読んで\ r \ nで分割するとどうなりますか?

3

あなたは入力ファイルをASCIIであると宣言しましたが、それは明らかにそうではありません。それをiso-8859-1またはCP-1252(Windows Latin-1)のようなものに変更してください。

これは、óçç ASCIIで、あなたはそれらと何をするつもりですか?単にそれらを投げ捨てる?あるいは、代わりにあなたの出力にUTF-8のようなより普遍的なエンコーディングを使用していることを確認する必要がありますか?

あなたのソースから、このファイルに使用されているエンコーディングが何であるかを調べ、ファイルの受信者に出力可能なものを尋ねることをおすすめします。見つけ出す唯一の方法は、表面上で似ているさまざまなエンコーディングがあるため、ASKにすることです。

ここ
1

、ソースファイルエンコーディングため

チェックを書きながら(これは本質的にネジ次のステップ)

  • を読んでいる間、あなたが、

    1. をねじ込むすることができる2つの場所があります(Notepad2にエンコードを示すステータスバーが表示されます)、ソースファイルからの読み取り中に使用してください。

      ファイルを正常に読み終えたら、出力ファイルにこれらの文字を保存するためにUTF-8で書き込みます。あなたが言ってきたものから、

  • 1

    1. あなたが想定していること、入力ファイル(のエンコーディングに関する正しい仮定しないで作った、つまり、データを正しく読み取るために管理していますエンコーディングは良いことです)。これは、文字列をコンソールに書き込むことができ、入力と一致すると述べたからです。

    2. 出力ファイルのデータは、表示すると何とか正しくありません。

    しかし、あなたは正しくデータを読んでいるので、あなたがする(Windows-1252)を使用している出力エンコーディングは、実際にあなたが述べてきた文字をサポートしていない(他の人があるのですか?)、つまりó,およびçの場合、ファイルを正しく書き込まない理由はありません。

    出力ファイルが正しく書かれていないという結論をどうやって引き出すのですか?あなたが使用しているツールは、と表示されていますか?は特定のエンコーディングですか?

    関連する問題