如何获取以指定编码打开的CSV文件

时间:2013-08-06 14:05:03

标签: c# csv encoding

我得到一个在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:

  

çã÷ááä

解决方案?

1 个答案:

答案 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为分隔符,以便在列中正确打开。