我正在打开一个使用 Unicode 1200 代码页创建的 CSV 文件,但当我在 Excel 中调出向导来打开它时,这个代码页不存在。我只看到 UTF-7 和 UTF-8。
我确实需要打开一个现有的 Unicode 1200 代码页的 csv 文件,但出于好奇,如果我只是创建一个新的 excel 表并尝试使用此代码页保存它,则仍然不存在该选项。
在这种情况下,有趣的是,选项很少,而且更高级。例如,CSV UTF-8 (comma delimited) (*.csv)
在后一种情况下,有一个选项和另一个“Unicode 文本 (*.txt)”,但没有实际 unicode 页面的选项,那么我们如何知道这到底是什么?我知道 utf-16 是代码页 1200,但那里没有。
答案1
如果有人处于同样的情况,以下是根据我的经验测试得出的一些观察结果。
我们首先使用具有 Unicode 1200 页编码的源 CSV 文件。正如评论指出的那样,这也称为UTF-16记事本调用它UCS-2 LE 物料清单。
如果我以 ANSI 格式打开 excel 文件(这是 excel 数据向导中的默认选项)并将文件保存为CSV(逗号分隔)(*.csv),它会将文件编码更改为 ANSI,所有外语数据都会丢失。所以这绝对不行。
如果我像以前一样将 excel 文件以 ANSI 格式打开,但这次将其另存为Unicode 文本 (*.txt)它确实将其保存为 UTF-16 格式并保留所有外语数据。也就是说,文件格式现在是 .txt,但可以在资源管理器中重命名。
因此,好消息是,excel 仍然可以正常读取文件,并将其保存为 Unicode 文本文件,保留所需的编码,但要注意类似的另存为Excel 中的选项CSV (MS-DSOC)(.csv)* 以及其他一些文件,它们可能会将编码更改为 ASCII 或其他编码。
答案2
遗憾的是,Office 2013 及更早版本没有 UTF-16……如果您尝试导入文件即使没有国际字符,有痛苦的虫子。
举个例子:在引号字符串中嵌入逗号的 CSV 文件将无法正确导入。
使用 Notepad++ 转换为 UTF-8 BOM,然后就可以正常导入。
我建议使用 UTF-8 BOM 以实现兼容性和文件大小效率。它可以处理 100% 的所有 Unicode 代码点。