在我的MFC应用程序中,我正在读取string表中的日文字符,然后使用以下代码将其转换为多字节
WCHAR wBuf[1024]; int rc; rc = LoadStringW(hInstance,iResourceID,wBuf,1024); WideCharToMultiByte(1252,WC_COMPOSITECHECK,-1,buf,1024,NULL,NULL);
但是每一个日本人的angular色都被转换成了“????” 我试图将代码页从1252更改为1200,但没有帮助。
如何检查一个端口是否在Linux使用C是免费的
在C#中使用Socket改进TCP转发器
如何在程序集级别剖析C ++函数?
读取包含复杂数据的Windows事件负载
(2)用HugeTLB改变虚拟地址?
Windows-1258是越南文文本的代码页。 日语不能在越南语代码页中表示,所以输出被映射到问号。 这同样适用于1252年,这只适用于西欧语言。
在1200的情况下,这不是一个真正的代码页: 根据MSDN ,它只适用于托管的应用程序(即.NET)。
我强烈建议直接使用Unicode,但是如果您绝对必须将其转换为多字节字符集,则需要一个支持日语的字符集,在这种情况下,Shift-JIS(代码页932)是常用的代码页。
是。 我保存RC文件使用VS 2010'高级保存选项' – >'Unicode – Codepage 1200',我尝试使用WideCharToMultiByte 1200代码页'1200',但仍然没有去。
那么这只是部分的技巧,实际上你需要在.rc文件中指定数据的编码,如下所示:
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_JPN) #ifdef _WIN32 LANGUAGE LANG_JAPAnesE,SUBLANG_JAPAnesE_JAPAN #pragma code_page(932) #endif STRINGTABLE BEGIN STR_ID "<Japanese text goes here>" END #endif
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。