Unicode字符集下WriteFile中文处理
最近在使用WriteFile函数时发现,vc2008中unicode字符集下处理中文乱码的一些解决方法,归纳如下
1. 写入的时候采用多字节char类型
HANDLE hFile;DWORD nBytes;hFile=CreateFile(_T("test.txt"),GENERIC_WRITE,FILE_SHARE_WRITE,NULL,CREATE_ALWAYS,0,NULL);char msg[]="我是我的我";if(hFile!=INVALID_HANDLE_VALUE){WriteFile(hFile,msg, sizeof(msg) ,&nBytes,NULL);CloseHandle(hFile);}
2. 直接写入unicode的头字节
HANDLE hFile;DWORD nBytes;hFile=CreateFile(_T("test.out"),GENERIC_WRITE,FILE_SHARE_WRITE,NULL,CREATE_ALWAYS,0,NULL);WCHAR msg[]=L"我是我的我";if(hFile!=INVALID_HANDLE_VALUE){WORD a=0xFEFF;WriteFile(hFile,&a,sizeof(a),&nBytes,NULL);WriteFile(hFile,msg, lstrlen(msg) * sizeof(TCHAR),&nBytes,NULL);CloseHandle(hFile);}
3. 使用wcstombs转换成多字节,需要引用wchar.h和locale.h
HANDLE hFile;DWORD nBytes;hFile=CreateFile(_T("test.out"),GENERIC_WRITE,FILE_SHARE_WRITE,NULL,CREATE_ALWAYS,0,NULL);WCHAR msg[]=L"我是我的我";if(hFile!=INVALID_HANDLE_VALUE){char buf[sizeof(msg)];setlocale(LC_ALL, ".936");wcstombs(buf, msg, sizeof(msg));WriteFile(hFile,buf, sizeof(buf),&nBytes,NULL);CloseHandle(hFile);}
//
hFile=CreateFile(_T("test.txt"),GENERIC_READ,FILE_SHARE_READ,NULL,OPEN_ALWAYS,0,NULL);
if(hFile!=INVALID_HANDLE_VALUE)
{WCHAR line[256]={0};BOOL bResult;bResult=ReadFile(hFile,line,sizeof(line),&nBytes,NULL);if(nBytes!=0){printf("%s\r\n",line);}CloseHandle(hFile);
}
4. 使用WideCharToMultiByte转换成多字节
(省略)
Unicode字符集下WriteFile中文处理相关推荐
- Unicode字符集下CString与char *转换 (解决中文乱码等)(转)
UniCode 下 CString 转 char* 的方法的文章有很多,但是大部分都是在互相转载,看了那么多资料,仍然没有解决乱码的问题,后来从一个论坛的一条回复里面找到了正确的方法,特此拿出来与大家 ...
- Unicode字符集下CString/tchar*与char *转换 (解决中文乱码等)
Unicode环境下宽字符------->窄字符的转换 定义:TCHAR m_szIp[MAX_IP_LEN]; 我们要将TCHANR类型数组(宽字符型)转换为char*pBuffer类型( ...
- WIN32开发之Unicode字符集下cstring转换为char[]相互转换
1.CString转char[] CString SeveName:// char ch[100]; memcpy(a, SeveName, SeveName.GetLength() * 2); fo ...
- 计算机系统-Unicode字符集与它包含的UTF-8解决方案
Unicode字符集最早要求每个字符占4个字节,这用英语和阿拉伯语的国家能同意吗?他们肯定不同意,4个字节太大了,但是类似中文韩语日语这些,1个2个字节还放不下,这就提出了Unicode字符集下的UT ...
- 通过编写串口助手工具学习MFC过程——(三)Unicode字符集的宽字符和多字节字符转换...
通过编写串口助手工具学习MFC过程 因为以前也做过几次MFC的编程,每次都是项目完成时,MFC基本操作清楚了,但是过好长时间不再接触MFC的项目,再次做MFC的项目时,又要从头开始熟悉.这次通过做一个 ...
- unicode 字符集环境下的mfc 读写 ini 配置文件的_WSL:在Windows下优雅地玩Linux
本文作者:刘观宇,360 奇舞团高级前端工程师.技术经理,W3C CSS工作组成员. 引子 一直以来,Windows的命令行的体验都不是特别的友好.由于Windows以图形界面交互为主,同时微软在一段 ...
- linux 添加宋体字符集,Linux下安装中文宋体
1,#cd /usr/share/fonts/default 2,mkdir -p ./truetype/simsun 3,取得simsun.ttc文件:如果网上下载不到则在windows (c:/w ...
- 使用Unicode字符集时用CFile把中文写入txt文件再用记事本打开出现乱码的问题
使用Unicode字符集时用CFile把中文写入txt文件再用记事本打开出现乱码的问题 新建一个记事本,写入"中",另存为ANSI.txt,编码选ANSI:再次另存为Unicode ...
- unicode字符集与utf-8编码的区别,unicode转中文工具、中文转unicode工具(汉字)
在cw上报的报警信息中,有一个name字段的值是\u4eba\u4f53 不知道是啥,查了一下,是unicode编码,用下面工具转换成汉字就是"人体" 参考文章:https://t ...
最新文章
- C#百度OCR-本地和网络图片识别文字
- Linux 自动删除N天前的文件
- 电子产品的磨砂膜和镜面膜的选择
- android的m、mm、mmm编译命令
- Ubuntu16.04安装Python3.7及其pip3并切换为默认版本
- POJ 1952 BUY LOW, BUY LOWER
- windows openssl环境变量_run custom build command for `openssl-sys v0.9.55`
- cp复制多个文件到指定目录
- bug篇——Windows启动redis报错Creating Server TCP listening socket 127.0.0.1:6379: bind: No error...
- BP神经网络数据预测(excel)
- 计算机与不确定性原理,傅里叶变换和不确定性原理
- XXXX大学课程设计说明书格式规范
- 微信小程序开发者工具使用vant组件
- 微信公众号HTML5接入腾讯云人脸核身
- 串口之COMMTIMEOUTS结构体详解
- [精简]RuoYi开发实战-搭建开发环境
- 计算机修改wif教程,电脑修改wifi密码步骤
- 34岁王晓松的成绩单:新城控股收入股价双增,毛利率骤降9%
- android-控件之Textview属性
- python vba excel课程_【Python3+VBA】在Excel中生成小姐姐|python3教程|python入门|python教程...
热门文章
- 软件测试面试-如何测试一个杯子(转)
- Java vs Big data 哪种编程语言更好?
- Emacs 24.3 配置JDEE(http://blog.csdn.net/csfreebird/article/details/19033939)
- hdu oj 2020 绝对值排序
- 一个当了爹的程序员的自白
- jQuery 之父:每天写代码
- 前端页面水印生成实现
- Mahout-协同过滤-CF-推荐算法基本概念及代码示例
- 马上开始写 react ES6 --- 基于gulp 和 Babel 的脚手架
- 总结Servlet体系接口和类