int nLength = wcslen(fn);//fn是wchar_t*类型 int nBytes = WideCharToMultiByte(0, 0, fn, -1, NULL, 0, NULL, NULL);
[quote=引用 2 楼 dingxz105090 的回复:] [quote=引用 1 楼 akirya 的回复:] 第一个参数为啥要填0?
第一个参数用0是用的当前线程的代码页, 自己指定就好了, 试过了日语的CodePage 932,执行后nBytes比nLength多出7是没错,但是文本不对了 这个是因为你显示的字体不对, 你用日文字体就好了
[quote=引用 1 楼 akirya 的回复:] 第一个参数为啥要填0?
[quote=引用 4 楼 oyljerry 的回复:] 日文的话,你需要本地系统支持日文,比如日文操作系统,中文操作系统等有对应的日文字符集,这样你才可以用unicode等进行转换处理
我记得有个api可以设置当前线程的区域
日文的话,你需要本地系统支持日文,比如日文操作系统,中文操作系统等有对应的日文字符集,这样你才可以用unicode等进行转换处理
第一个参数为啥要填0?
16,471
社区成员
421,732
社区内容
加载中
VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌…… 向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能…… 我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……
试试用AI创作助手写篇文章吧