将中文指定为DBCS

时间:2011-09-15 04:32:21

标签: c++ visual-studio-2010 internationalization

在我的代码中,我可以这样做:

wchar_t * s = L“......一些中文/日文/等字符串......”;

这没关系。 但如果我这样做:

char * s =“...... some chinese / japanese / etc string ...”

我最终被分配到“???????” (不是显示问题,值中存在实际问号)。

鉴于我使用的是US / 1252 Win 7(VS2010)和Unicode编译的应用程序,如何在给定常量字符串文字的情况下创建MBCS中文字符串?我不希望它是unicode,而是中文字符的MBCS表示。

到目前为止,我能够做到的唯一方法是使用unicode版本并使用WideCharToMultiByte将其转换为MBCS。我真的需要这样做,还是将其作为字节数组输入?

1 个答案:

答案 0 :(得分:1)

是的,你确实需要这样做。 C ++中没有MBCS字符串文字。

(理论上你可以用正确的字节做一些像char * s =“... \ xa7 \ f6 \ d5 ...”的东西, 但这很难写和阅读。)