2010-03-23 425 views
1

我在C++/CLI项目中有一个头文件,其中包含一些不同语言的字符串。 阿拉伯语,英语,德语,中文,法语,日语等...我的C#应用​​程序中的Unicode字符串显示为问号

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

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

例:“使发圣安格在章内线本身ň?????” (这是不是最好的例子,我知道)

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

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

+1

显示代码!尝试使用过载检测你怎么看从C#中的C++文件?的几行代码将有助于确定问题标记 – 2010-03-23 23:14:31

+1

。 – Gonzalo 2010-03-23 23:15:50

+0

我的C#项目引用了C++ CLI项目 C++ CLI包含这样的内容: literal String^sText =“中国话的中国话的中国话的”; 当我访问sText我的C#项目的sText的内容看起来像“??????????????????” 但是,当我把上面的中文字符串,并把它放到我的C#项目中的本地变量像这样: 字符串sLocalText =“中国话的中国话的中国话的”; 调试器可以正确显示本地,但不是另一个! – mrbamboo 2010-03-23 23:57:02

回答

0

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

这将是有益的,看看代码。

相关问题