我知道西欧Windows的默认编码是ISO-8859-1,网络标准的默认编码是UTF8,但我希望(google让我失望)有人知道Windows / Visual Studio的默认值/ C#软件在印度?
原因是我们有一家印度公司联系我们的网络服务并获得解析例外,我怀疑他们没有正确设置编码(UTF8),但使用英文Windows默认测试( ISO-8859-1)有效,所以我正在研究替代方案。
答案 0 :(得分:2)
我可能错了,但经过一些研究后我得出结论,如果他们没有使用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,使用默认编码转换为字符串并且它会爆炸。