【问题标题】:Windows code page 1252 able to handle non English CharactersWindows 代码页 1252 能够处理非英文字符
【发布时间】:2018-09-12 11:24:49
【问题描述】:

我们的程序在某些机器上运行而不在其他机器上运行。我们发现问题出在我们使用 ANSI 版本的 GetTempPath;在非英语操作系统中失败。到现在为止还挺好。但是,我们的代码在“某些”计算机上运行,​​并且测试应用程序的结果不一致。如果 TEMP 路径有非英文字符,比如 TEMP=E:/टेम्प,那么在某些计算机上 GetTempPath 返回 E:/???然后稍后尝试打开该文件夹上的文件失败。没错。易于修复 - 使用 API 的 unicode 版本。

但在其他一些计算机上,它会返回正确的编码,以便最终文件打开成功。

我检查了这些计算机上的 ACP - 它是 1252。1252 如何能够编码非英文字符?

这已成为讨论的话题 - 我们的计划一直是如何运作的?这样的错误应该早就报告了等等。

【问题讨论】:

    标签: unicode globalization codepages


    【解决方案1】:

    1252 如何编码非英文字符?"

    因为代码页 1252 中包含各种非英文字符。在维基百科上查看完整的character table。请注意,टेम् 不存在于 1252 中,这就是为什么它们在被视为 ANSI 时最终为 ?

    另外,您应该使用 API 函数的 Unicode 版本而不是 ANSI 版本,这样您就不会再遇到这个问题了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-09-26
      • 1970-01-01
      • 2012-08-19
      • 1970-01-01
      • 2012-07-16
      • 1970-01-01
      • 2016-12-13
      • 1970-01-01
      相关资源
      最近更新 更多