将中文指定为 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的主要内容,如果未能解决你的问题,请参考以下文章