我的C#App中的Unicode字符串带有问号

时间:2010-03-23 23:12:33

标签: c# string unicode encoding c++-cli

我在C ++ / CLI项目中有一个头文件,它包含一些不同语言的字符串。 阿拉伯语,英语,德语,中文,法语,日语等...

我有一个用C#编写的第二个项目。 在这里,我访问存储在C ++ / CLI项目的头文件中的字符串。

头文件的编码是Unicode - Codepage 1200或UTF-8。 visual studio编辑器能够正确显示字符串。 在运行时,我访问这些字符串并将它们分配到本地String变量中。 在这里,我意识到许多字符串没有正确显示。如果我分配它们无关紧要。访问原始位置(在调试时)向我显示带有问号的所有外部字符串。特别是中国人,只是问号。

示例:“那么?St?ange?ext in Ch?n?se” (这不是最好的例子,我知道)

有什么问题? 我读到C#默认是UTF-16, 我的包含字符串的头文件是UTF-16或UTF-8。

我必须能够处理不同语言的字符串。我做错了什么?

1 个答案:

答案 0 :(得分:-1)

'?'表示文本读取为Unicode(UTF16),而且有一些转换为您当前的代码页。由于您当前的代码页不是中文,因此中文字符将转换为'?'

查看代码会很有帮助。