Windows代码页1252能够处理非英文字符

问题描述 投票:0回答:1

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

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

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

它已经成为讨论的话题 - 我们的计划如何一直在运作?很久以前就应该报告过这样的bug等。

unicode globalization codepages
1个回答
0
投票

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

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

此外,您应该使用Unicode版本的API函数而不是ANSI版本,那么您将不再有这个问题。

© www.soinside.com 2019 - 2024. All rights reserved.