在我的表单应用程序中,我创建了一个像设计器一样的表单的部分类,通过对方法进行分类来减少代码的复杂性(我可以使用不同的类,但此时不可能)。
我的string
值包含几个utf-8字符。
string t = "şçıer";
如果我以我创建的部分形式声明此string
,当我尝试弹出一个消息框以显示此string
出错时。
结果:þçýer
但是当我在form1.cs中声明它时,它没关系。
答案 0 :(得分:3)
编码不匹配。
拉丁语-5中0xfe ş,Latin-1,Latin-6,Latin-9和CP-中þ 1252。
0xfd 在Latin-5中ı,在Latin-1,Latin-6,Latin-9和CP-中ý 1252。
UTF-8中的ş为0xc5 0x9f,ı为0xc4 0xb1。因此链中的某些部分要么 in 编码错误,要么声明错误的编码。确保你实际上一直使用 UTF-8,因为有证据表明你在源代码中使用了Latin-5(ISO-8859-9),并将其解释为Latin-1(或者其中一个)上面提到的其他编码。)