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,以下代码都适用于我。我可以在 notepad++ 或 excel 中打开生成的 CSV。

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 回答