我得到一个在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:
çã÷ááä
解决方案?
答案 0 :(得分: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 ++来正确读取字符,但是我必须使其以tab为分隔符,以便在列中正确打开。