将中文指定为 DBCS

Posted

技术标签:

【中文标题】将中文指定为 DBCS【英文标题】:assigning chinese as DBCS 【发布时间】:2011-09-15 04:32:20 【问题描述】:

在我的代码中我可以做到:

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

这工作正常。 但如果我这样做:

char *s = "...一些中文/日文/等字符串..."

我最终将 s 分配给“?????????” (不是显示问题,值中有实际问号)。

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

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

【问题讨论】:

【参考方案1】:

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

(理论上你可以用正确的字节做类似 char *s = "...\xa7\f6\d5..." 的事情, 但那会很难写和读。)

【讨论】:

以上是关于将中文指定为 DBCS的主要内容,如果未能解决你的问题,请参考以下文章

DBCS 从256开始

Windows核心编程04-字符编码

文本框中的自动完成文本

java 中文显示乱码

windows 编程 —— 宽字符集 与 Unicode

2.windows字符集