在Windows中识别unicode编码文本文件的最佳方法是什么?

HOC*_*OCA 13 windows unicode search

我正在开发一个代码库,由于多个团队成员使用不同的编辑器(以及默认设置)进行开发,因此散布了一些unicode编码文件.我想通过查找所有unicode编码文件并将它们转换回ANSI编码来清理我们的代码库.

任何关于如何完成这项任务的"发现"部分的想法都将得到真正的体会.

Dou*_*rch 5

Unicode 是一种标准,而不是一种编码。有许多编码实现 Unicode,包括 UTF-8、UTF-16、UCS-2 等。将任何这些编码转换为 ASCII 完全取决于您的“不同编辑器”使用的编码。

一些编辑器在 Unicode 文件的开头插入 BOM 的字节顺序标记。如果您的编辑器这样做,您可以使用它们来检测编码。

ANSI 是一个标准机构,已发布多种数字字符数据编码。MS DOS 使用并在 Windows 中支持的“ANSI”编码实际上是 CP-1252,而不是 ANSI 标准。

您的代码库包含非 ASCII 字符吗?使用 Unicode 编码可能比 ANSI 编码或 CP-1252 具有更好的兼容性。

  • 没有单一的 Windows 8 位(又名 ANSI)编码,有很多种,例如 CP1251、CP1252、CP1253 等。另请参阅此问题:http://stackoverflow.com/questions/3864240/default-code-page-for-each-language-version-of-windows (2认同)

dan*_*n04 5

请参阅"如何检测文本文件的字符编码?""如何可靠地猜测编码[...]?"

  • 可以通过验证来检测UTF-8.您也可以查找BOM EF BB BF,但不要依赖它.
  • 可以通过查找BOM来检测UTF-16.
  • 可以通过验证或BOM检测UTF-32.
  • 否则假设ANSI代码页.

我们的代码库不包含任何非ASCII字符.我将尝试在代码库中的文件中查找BOM.谢谢你的澄清.

嗯,这使事情很多简单.没有非ASCII字符的UTF-8 ASCII.