我是靠谱客的博主 懦弱自行车,最近开发中收集的这篇文章主要介绍WriteFile写UNICODE字符串 TxT显示乱码,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

 写UNICODE字符串到TXT文件里,打开显示乱码,查了相关资料,解决的方法有两种:

1、在写入前插入0xFEFF,让系统认为是Unicode编码。注意,写入后用十六进制编辑器查看高低位是互换的

Unicode:0xFEFF
UTF8:0xEFBBBF

 

//这是一种解决乱码的方法,在前面写入0xfeff,以unicode方式打开
//      WORD a = 0xfeff;//写入0xfeff让记事本以Unicode方式打开,中文不会乱码
//      WriteFile(hFile, &a, 2, &dwBytesWrite, NULL);
//      if (WriteFile(hFile, szText,dwNumText*2, &dwBytesWrite, NULL))//第三个参数是写入的byte数,因为是宽字符,所以个数要乘以2

//第二种方法,宽窄字符转化
      int a = WideCharToMultiByte(CP_ACP, NULL, szText, -1, LPSTR(szTextAnsi), MAX_PATH, NULL, FALSE);//Unicode转换为ANSI,a的值包括了字符串最后的0
      if (WriteFile(hFile, szTextAnsi,a-1, &dwBytesWrite, NULL))//写入的时候最后的0不用写入所以要用a-1
      {
       MessageBox(hwnd,TEXT("写入成功"),TEXT("成功"),0);
      }
      else
      {
       MessageBox(hwnd,TEXT("写入失败"),TEXT("出错"),0);
      }

试了第一种方法没问题,就选择用第一种了,第二种方法还没试。

最后

以上就是懦弱自行车为你收集整理的WriteFile写UNICODE字符串 TxT显示乱码的全部内容,希望文章能够帮你解决WriteFile写UNICODE字符串 TxT显示乱码所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(31)

评论列表共有 0 条评论

立即
投稿
返回
顶部