使用API​​ WideChartoMultibyte将日文字符从宽字符转换为多字节给出'????'

使用API​​ WideChartoMultibyte将日文字符从宽字符转换为多字节给出'????',第1张

概述使用API​​ WideChartoMultibyte将日文字符从宽字符转换为多字节给出'????'

在我的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将日文字符从宽字符转换为多字节给出'????'所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1235200.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-06
下一篇 2022-06-06

发表评论

登录后才能评论

评论列表(0条)

保存