gpt4 book ai didi

excel - Microsoft Excel 破坏 .csv 文件中的变音符号?

转载 作者:行者123 更新时间:2023-12-04 21:07:21 26 4
gpt4 key购买 nike

我正在以编程方式将数据(使用 PHP 5.2)导出到 .csv 测试文件中。
示例数据:Numéro 1 (注意带重音的 e)。
数据为utf-8 (无前置 BOM)。

当我在 MS Excel 中打开此文件时,显示为 Numéro 1 .

我可以在正确显示它的文本编辑器(UltraEdit)中打开它。 UE 报告字符为 decimal 233 .

我怎么能导出文字 .csv 文件中的数据,所以 MS Excel 将正确呈现 它,最好不强制使用导入向导,还是非默认向导设置?

最佳答案

格式正确的 UTF8 文件可以有 Byte Order Mark作为它的前三个八位字节。这些是十六进制值 0xEF、0xBB、0xBF。这些八位字节用于将文件标记为 UTF8(因为它们与“字节顺序”信息无关)。 1如果此 BOM 不存在,则由消费者/读者推断文本的编码类型。不支持 UTF8 的阅读器会将字节读取为其他编码(例如 Windows-1252)并显示字符 在文件的开头。

有一个已知错误,即 Excel 在通过文件关联打开 UTF8 CSV 文件时假定它们是单字节编码 无视 UTF8 BOM 的存在。这个可以不是 由任何系统默认代码页或语言设置修复。 BOM 不会在 Excel 中提供线索 - 它只是行不通。 (少数报告声称 BOM 有时会触发“导入文本”向导。)此错误似乎存在于 Excel 2003 及更早版本中。大多数报告(在此处的答案中)说这在 Excel 2007 和更新版本中已修复。

请注意,您 可以 always* 使用“导入文本”向导在 Excel 中正确打开 UTF8 CSV 文件,该向导允许您指定正在打开的文件的编码。当然,这不太方便。

此答案的读者很可能处于他们不特别支持 Excel < 2007,但将原始 UTF8 文本发送到 Excel 的情况下,这会误解它并在您的文本中添加 Ã和其他类似的 Windows-1252 字符。 添加 UTF8 BOM 可能是您最好和最快的解决方法。

如果您在旧版 Excel 上遇到用户问题,并且 Excel 是 CSV 的唯一使用者,您可以通过导出 UTF16 而不是 UTF8 来解决此问题。 Excel 2000 和 2003 将正确双击打开这些。 (其他一些文本编辑器可能会遇到 UTF16 问题,因此您可能需要仔细权衡您的选择。)

* 除非你不能,(至少)Excel 2011 for Mac 的导入向导实际上并不总是适用于所有编码,无论你告诉它什么。 :)

关于excel - Microsoft Excel 破坏 .csv 文件中的变音符号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6736947/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com