我知道西欧 Windows 的默认编码是 ISO-8859-1,网络标准的默认编码是 UTF8,但我希望(谷歌让我失望)有人知道 Windows/Visual Studio/C# 的默认编码印度的软件?
原因是我们有一家位于印度的公司联系我们的网络服务并收到解析异常,我怀疑他们没有设置正确的编码(UTF8),而是使用英语 Windows 默认值(ISO- 8859-1)有效,因此我正在研究替代方案。
最佳答案
我可能是错的,但经过一番研究后我得出的结论是,如果他们不使用 en_IN
语言环境,他们就没有 GUI 或控制台的代码页。
This MS official source将印地语代码页列为 0。
This random copy of this list说印地语是仅支持 Unicode 的语言环境。
IANA claims代码页号 0、1 和 2 被保留。
Here we have Moodle developer他发现,虽然他可以在大多数区域设置下对文本文件使用专门的代码页,但他们必须在印地语区域设置下诉诸 UTF-8(又名代码页 65001)文本文件 - 在大多数其他版本的 Windows 中,这些文件被称为“Unicode 文件” .
Here we have another developer谁发现印地语没有默认代码页。
According to MSDN ,所有区域设置敏感函数都默认为 C 区域设置,这意味着 8 位字符串使用 ASCII。
所以:
如果没有 Unicode,则无法输入印地语
印地语语言环境可能将 8 位字符串中 >=128 的所有字节视为无效字符,而在 Windows-1252 中大多数字节都是有效的;我猜应用程序执行了太多字节到文本的转换,而没有考虑编码(或者那些印度人这样做)
最后,印度的其他语言也没有 ANSI 代码页
我现在使用的是 Linux,但如果可以的话,我建议通过 Applocale 在各种语言环境下运行程序。我推荐印地语、日语和土耳其语——这样发现错误的机会最大。
但我敢打赌,他们会直接读取 XML,然后使用默认编码转换为字符串,然后它就会崩溃。
关于c# - 印度 Windows 的默认字符编码是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25384288/