在我的表单应用程序中,我创建了一个类似设计器的表单的部分类,以通过对方法进行分类来降低代码的复杂性(我可以使用不同的类,但目前尚不可能)。

我有一个包含多个utf-8字符的string值。

string t = "şçıer";

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

结果:þçýer

但是当我在form1.cs中声明它时就可以了

最佳答案

编码不匹配。

0xfe在Latin-5中为ş,在Latin-1,Latin-6,Latin-9和CP-1252中为þ。

0xfd在Latin-5中是ı,在Latin-1,Latin-6,Latin-9和CP-1252中是ý。

UTF-8中的would将是0xc5 0x9f,而ı将是0xc4 0xb1。

因此,您链中的某些部分要么编码错误,要么声明编码错误。确保整个过程中实际上都在使用UTF-8,因为有证据表明您在源中使用的是Latin-5(ISO-8859-9),并将其解释为Latin-1(或上述其他编码之一)。

关于c# - 局部类中的utf-8错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31699309/

10-09 01:05