【问题标题】:How to detect characters with unknown encoding (like Textmate)?如何检测未知编码的字符(如Textmate)?
【发布时间】:2014-05-02 17:22:57
【问题描述】:

Textmate 不允许打开包含未知编码字符的文件。 For example, when a wrong encoding is selected, the Open button is disabled:

选择正确的编码时,启用打开按钮:

是否有用于报告在当前编码之外编码的字符的 cObjective-C 库?

【问题讨论】:

标签: objective-c c encoding locale


【解决方案1】:

在您的主目录中创建 .tm_properties 文件,然后将以下代码放入其中:

[ attr.file.unknown-encoding ]
encoding=gbk

当 Textmate 2 不知道文件编码时,这会将默认编码设置为 gbk。 您也可以将此 .tm_properties 文件放在项目根目录中,以便仅在项目中使用此设置。

【讨论】:

    【解决方案2】:

    通常的方法是使用某种默认编码(如 UTF-8/16 或 latin 1)加载文本。如果文本开头有一个BOM,那么这很好地表明该文本是某种形式的Unicode。 BOM 还有助于查找使用的转换格式(UTF-8 等)。

    如果加载文本仍然失败,那么是时候向用户询问提示(字符集选择)了,因为很难猜出使用的编码是什么。

    【讨论】:

      猜你喜欢
      • 2013-04-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-30
      • 2013-07-06
      • 2015-03-31
      • 2011-10-13
      相关资源
      最近更新 更多