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

2023-12-07

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

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

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

我怎么能够导出文本.csv 文件中的数据因此MS Excel 将正确呈现最好不要强制使用导入向导或非默认向导设置?


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

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

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

此答案的读者很可能处于这样的情况:他们并不特别支持 Excel Ã和其他类似的 Windows-1252 字符。添加 UTF8 BOM 可能是最好、最快的解决方法。

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


* Except when you can't, (at least) Excel 2011 for Mac's Import Wizard does not actually always work with all encodings, regardless of what you tell it. </anecdotal-evidence> :)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Microsoft Excel 会破坏 .csv 文件中的变音符号? 的相关文章

  • 使用VBA复制垂直列并沿对角线粘贴

    我有一列数据 我们称之为 A 列 其中有 35 行数据 如何在此列上循环 然后将每个数据点粘贴到另一张工作表中 同时为每个循环循环增加列和行 换句话说 我寻求对角粘贴在第二张纸中 有没有一种简单的方法可以在 VBA 中执行此类操作 不要循环
  • 如何在 T-SQL 中将 CSV 转换为记录集?

    在我的存储过程中 我传递一个过滤器 使用 WHERE Column IN 子句 作为参数 参数值以 CSV 形式给出 将此 CSV 转换为记录集的最佳方法是什么 例子 SELECT FROM Employee WHERE Name IN J
  • 将最后几个功能添加到我的调度模板生成器中

    感谢 StackOverflow 上的一些出色的人 我几乎完成了调度模板生成器的代码 我还想补充三件事 但我遇到了一些麻烦 当前细分 我有两张表 2 员工列表 和 X 模板 员工列表中的值是从单元格 D9 开始的一列员工姓名 然后将员工值转
  • 文本到行 VBA Excel

    我有一个电子表格 其中包含大约 4000 行数据 其中一列数据具有唯一的订单号 我希望使用 作为分隔符将其分隔 所以本质上我想要 Name Order Date Jane 123 001 111 08 15 2013 Gary 333 12
  • Office excel将CORS请求作为跨域请求

    我正在尝试从我的 Excel 插件发出跨域请求 正如这里所建议的 http dev office com docs add ins develop addressing same origin policy limitations http
  • 导出到excel时如何显示前导零?

    我正在通过更改内容类型来创建 Excel 报告 Response ContentType application vnd ms excel 我有包含前导零的值 问题是导出到 Excel 时缺少前导零 e g 000123 gt 123 我知
  • 如何找到特定程序的安装目录?

    我已经成功地编写了一些用于工作的 VBA 宏 这些宏基本上创建了一个数据文件 将其提供给一个程序并对该程序的输出进行后处理 我的问题是程序安装路径是硬编码在宏中的 并且安装在我同事的计算机上可能会有所不同 我首先想到的是 我可以从每个人那里
  • VBA 有没有办法了解未使用的变量?

    标准 VBA 编辑器中是否有工具 方法或设置来警告已被修改的变量Dim med 但没有被使用 MZ Tools http www mztools com index aspx将搜索您的代码并告诉您哪些内容未被使用 VBA的版本可以找到her
  • 修补应用内购买黑客;卡在第四步

    正如我们许多人所知 苹果最近出现了一种情况 黑客可以免费获得任何应用内购买 苹果最近发布了这个文件 http developer apple com library ios releasenotes StoreKit IAP Receipt
  • 使用 ObjPtr(Me) 返回自定义类实例的名称?

    我明白那个ObjPtr http support microsoft com kb 199824将返回内存中对象的地址 并且它指向一个名为 IUNKNOWN 的结构 并且其中编码了某种接口定义以公开对象结构 但我不知道如何确定一个对象的接口
  • SQL Server,插入 Excel“链接服务器”时出现“无效列名”错误

    我有一个简单的 Excel 电子表格文档 运行 Office 2013 我使用 Microsoft Office 15 0 Access 数据库引擎 OLE DB 提供程序 将其用作数据库 我可以使用 MS SQL Server Manag
  • VBA 完成 Internet 表单

    我正在寻找将 Excel 中的值放入网页的代码 Sub FillInternetForm Dim IE As Object Set IE CreateObject InternetExplorer Application IE naviga
  • 将包含宏的工作簿复制到不带宏的工作簿

    我能够复制工作簿 复制到所需位置 其中在后台包含宏 该副本还包含相同的宏 我的问题是我不希望这个重复的工作簿包含宏 谁能告诉怎么做吗 先感谢您 将您的工作簿保存为无宏 即简单地保存为 Excel 工作簿 对于我的 Excel 2007 这是
  • 我可以获取VBA代码中的注释文本吗

    可以说我有以下内容 Public Sub Information TEST End Sub 有没有办法得到 TEST 结果 不知何故通过VBA 例如 在 PHP 中 有一个获取注释的好方法 这里有什么想法吗 编辑 应该有办法 因为像 MZ
  • 使用 FindElementbyXpath() 获取 Selenium Basic 中可填充框的行和列名称

    我正在使用 Selenium Basic 将电子表格中的文本填充到网站中 网站的html代码是这样的 div table cellspacing 0 border 1 style width 99 tr th style font weig
  • 如何在 Sublime Text 中查看文件的当前编码?

    如何在 Sublime Text 中查看文件的当前编码 这看起来是一件很简单的事情 但搜索并没有取得太多成果 任何指示将不胜感激 由于该线程是谷歌搜索中的热门结果 因此以下是 Sublime Text 3 build 3059 的方法 在用
  • Excel 2003 中的 IFERROR

    我通过阅读几个线程了解到IFERROR在 Excel 2003 中由IF ISERROR 我尝试从 Excel 2007 复制的代码是 IFERROR A1 我知道必须有一个简单的解决方案将其转换为IF ISERROR 但我没有任何效果 意
  • 使用 ADODB 连接从关闭的工作簿中检索数据。某些数据被跳过?

    我目前正在编写一些代码 可以通过 ADODB 连接访问单独的工作簿 由于速度的原因 我选择了这种方法而不是其他方法 下面是我的代码 Sub GetWorksheetData strSourceFile As String strSQL As
  • MySQL 查询到 CSV [重复]

    这个问题在这里已经有答案了 有没有一种简单的方法来运行MySQL查询来自linux命令行并以csv格式输出结果 这就是我现在正在做的事情 mysql u uid ppwd D dbname lt lt EOQ sed e s g tee l
  • 使用PHP从doc、xls文件中读取数据

    我想知道是否可以从 doc 和 xls 文件中读取数据并将 将内容读取到图像文件中 创建文档的页面样本 例如 我有一些文件希望我的客户购买 所以我需要自动创建小图像 例如我的文档样本 我们将不胜感激您的帮助 对于读取 xls 文件 我真的推

随机推荐