在我的表单应用程序中,我创建了一个类似设计器的表单的部分类,以通过对方法进行分类来降低代码的复杂性(我可以使用不同的类,但目前尚不可能)。
我有一个包含多个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/