部分类中的utf-8错误

时间:2015-07-29 11:34:22

标签: c# utf-8

在我的表单应用程序中,我创建了一个像设计器一样的表单的部分类,通过对方法进行分类来减少代码的复杂性(我可以使用不同的类,但此时不可能)。

我的string值包含几个utf-8字符。

string t = "şçıer";

如果我以我创建的部分形式声明此string,当我尝试弹出一个消息框以显示此string出错时。

结果:þçýer

但是当我在form1.cs中声明它时,它没关系。

1 个答案:

答案 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(或者其中一个)上面提到的其他编码。)