我在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。
我必须能够处理不同语言的字符串。我做错了什么?
答案 0 :(得分:-1)
'?'表示文本读取为Unicode(UTF16),而且有一些转换为您当前的代码页。由于您当前的代码页不是中文,因此中文字符将转换为'?'
查看代码会很有帮助。