CSV 编码问题 (Microsoft Excel)
我正在使用 C# 动态创建 CSV 文件,并且遇到一些奇怪的编码问题。我目前使用 ASCII 编码,该编码在我在家和工作机器上使用的 Excel 2010 中运行良好。然而,客户使用 Excel 2007,并且对他们来说存在一些奇怪的格式问题,即“£”符号(英镑符号)前面有一个带重音的“A”字符。
我应该使用什么编码?烦人的是,我几乎无法测试这些修复,因为我无法访问 Excel 2007!
I am dynamically creating CSV files using C#, and I am encountering some strange encoding issues. I currently use the ASCII encoding, which works fine in Excel 2010, which I use at home and on my work machine. However, the customer uses Excel 2007, and for them there are some strange formatting issues, namely that the '£' sign (UK pound sign) is preceded with an accented 'A' character.
What encoding should I use? The annoying thing is that I can hardly test these fixes as I don't have access to Excel 2007!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
我在 Excel 2003 上使用 Windows ANSI 代码页 1252,没有任何问题。由于与您遇到的相同问题,我明确更改为此值。
I'm using Windows ANSI codepage 1252 without any problems on Excel 2003. I explicitly changed to this because of the same issue you are seeing.
在编写用于 Excel 的 CSV 文件时,我已成功使用 UTF8 编码。
我遇到的唯一问题是确保使用以编码作为参数的 StreamWriter 构造函数的重载。 StreamWriter 的默认编码表示它是 UTF8,但它实际上是 UTF8-Without-A-Byte-Order-Mark,并且没有 BOM Excel 将使用多个字节弄乱字符。
I've successfully used UTF8 encoding when writing CSV files intended to work with Excel.
The only problem I had was making sure to use the overload of the StreamWriter constructor that takes an encoding as a parameter. The default encoding of StreamWriter says it is UTF8 but it's really UTF8-Without-A-Byte-Order-Mark and without a BOM Excel will mess up characters using multiple bytes.
您需要将序言添加到文件中:
You need to add Preamble to file: