在我的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
总结以上是内存溢出为你收集整理的使用API WideChartoMultibyte将日文字符从宽字符转换为多字节给出'????'全部内容,希望文章能够帮你解决使用API WideChartoMultibyte将日文字符从宽字符转换为多字节给出'????'所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)