【问题标题】:Windows encoding clarificationWindows 编码说明
【发布时间】:2014-04-07 11:31:10
【问题描述】:

我想翻译一个游戏,这个游戏从一个文本文件中加载字符串。

目标语言使用非 ascii 字符,所以我天真地将我的文件保存为 utf8,但它不起作用,因为带有变音符号的字母显示不正确。

更好地研究存储字符串文本文件名的配置文件,我发现了一个 CHARSET 选项,它可以采用任何这些值:

ANSI_CHARSET DEFAULT_CHARSET SYMBOL_CHARSET MAC_CHARSET SHIFTJIS_CHARSET HANGEUL_CHARSET JOHAB_CHARSET GB2312_CHARSET CHINESEBIG5_CHARSET GREEK_CHARSET TURKISH_CHARSET VIETNAMESE_CHARSET HEBREW_CHARSET ARABIC_CHARSET BALTIC_CHARSET RUSSIAN_CHARSET THAI_CHARSET EASTEUROPE_CHARSET OEM_CHARSET

据我了解,这是 WinAPI 中相当标准的值,字符集和字符编码是同义词。

所以我的问题是,这些名称与标准名称(如 utf8 或 iso-8859-2)之间是否存在对应关系?如果是的话是什么情况?

【问题讨论】:

    标签: winapi character-encoding non-ascii-characters


    【解决方案1】:

    尝试使用EASTEUROPE_CHARSET

    ISO 8859-2 大部分等同于Windows-1250。根据这篇MSDN 的文章,1250 代码页是使用EASTEUROPE_CHARSET 访问的。

    请注意,您需要将文本文件保存在 1250 代码页中,因为 ISO 8859-2 并不完全相同。来自Wikipedia

    Windows-1250 与 ISO-8859-2 类似,具有所有可打印字符,甚至更多。然而,其中一些被重新排列(与 Windows-1252 不同,它将 ISO-8859-1 中的所有可打印字符保存在同一个位置)。大多数重新排列似乎是为了将与 Windows-1252 共享的字符保持在与 Windows-1252 相同的位置,但移动的三个字符 (Ą,Ľ,ź) 无法这样解释。

    【讨论】:

    • windows-1250 不编码我需要的一些字符。我需要那些特价商品:èéàìîòù ÈÉÀÌÎÒÙ。我尝试使用该文本编写一个 utf8 文件,并尝试使用以下命令对其进行转换: --iconv -c -f utf-8 -t windows-1250 DICRITICS-- 结果只有 é 和 î (以及大写字母)被转换。但是,如果您链​​接到的代码页表与 windows-X 编码有关,我可以尝试一下。
    • @Paolo.Bolzoni 这些在ANSI_CHARSET,又名Windows 1252,又名“西方”中可用。
    【解决方案2】:

    名称是 Windows 代码页的符号标识符,是 Microsoft 定义或采用的字符编码(= 字符集)。其中许多是registered at IANA,前缀为windows-。例如,EASTEUROPE_CHARSET 代表代码页 1250,已注册为 windows-1250,通常称为 Windows Latin 2。

    UTF-8 是不同的。您需要特殊的例程来读取和写入 UTF-8 编码的数据。当您想要真正全球化(支持不同的语言和书写系统)时,UTF-8 或 UTF-16 通常是字符编码的唯一明智选择。对于单一特定语言,某些代码页在某些情况下可能更实用。

    【讨论】:

    • 请记住,Microsoft 确实有 UTF-8 的代码页:65001。不过,UTF-8 没有对应的 XXX_CHARSETXXX_CHARSET 值对应于 Ansi 字符集。
    【解决方案3】:

    您可以使用此MSDN 页面备注部分下的表格获取标准编码名称(由IANA 注册)。

    只要找到字符集行并读取代码页码,标准名称是windows-[代码页码]。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-05-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-25
      • 1970-01-01
      • 2013-09-12
      • 2017-01-23
      相关资源
      最近更新 更多