1

Windows-1255 でエンコードされたバイト配列を取得します。

Encoding enc = Encoding.GetEncoding("Windows-1255");
...
byte[] bytes = enc.GetBytes(result);

そしてそれをCSVファイルとして保存します。

var str = Encoding.GetEncoding(1255).GetString(bytes);
using (StreamWriter sw = new StreamWriter("c:\\folder\\file.csv", false, Encoding.GetEncoding(1255)))
{   
    sw.Write(str);
}

CSV ファイルを開くと、Jibberish が表示されます。

çã÷ááä

解決 ?

4

1 に答える 1

0

編集: 明確化した後、バイトにエンコードしている理由がわかります...ただし、バイトをデコードする必要はありません...結果を書き込むだけです。

次のコードは、UTF8 または Windows-1255 のどちらを使用していても問題なく動作します。結果の CSV をメモ帳 ++ または Excel で開くことができます。

Encoding encodingOfChoice = Encoding.UTF8;
byte[] bytes = encodingOfChoice.GetBytes(text);

using (StreamWriter sw = new StreamWriter("c:\\folder\\folder.csv", 
        false, encodingOfChoice))
{
    sw.Write(result);
}

編集 2: この問題は、正しいエンコーディングを実際に書いているわけではありません。エンコーディングを適切に読み取るためにそれを開くプログラムを取得しています。Unicodeエンコーディングを使用すると、Excelとnotepad ++で文字を正しく読み取ることができましたが、Excelが列で正しく開くには、タブ区切りにする必要がありました。

于 2013-08-06T14:21:11.253 に答える