多种编码格式文件的保存
来源:互联网 发布:淘宝怎么开票 编辑:程序博客网 时间:2024/05/18 20:08
1、背景 XML(Extensible Markup Language)是一种可以用来创建自定义标记的标记语言,我们经常使用它来进行数据传递。Microsoft提供了XML内核服务()MSXML使得我们可以加载或创建DOM(Document Object Model)文档。在实际使用过程中,我们发现XML中一些特殊字符会自动转换为一些特殊编码。本文只讨论各种不同编码格式xml文本的生成,对于某种格式编码的特殊字符或超过编码范围的字符留待后面作进一步讨论。2、各种编码格式文件生成的解决方案 1)ANSI码文件 方案1: HANDLE hFile = CreateFile(“C://XXX.xml”, GENERIC_WRITE,FILE_SHARE_READ,NULL,CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL,NULL); if ( hFile != INVALID_HANDLE_VALUE ) {DWORD dwNumWritten = 0;BOOL bRes = WriteFile( hFile, strxml.c_str(), strxml.size(), &dwNumWritten, NULL);CloseHandle(hFile); } 方案2: FILE *pf = fopen(“C://sms.xml”, “wb+”); if (pf) { Size_t szLen = fwrite(pszText, 1, nLen,pf); fclose(pf); } 2)Unicode码文件 方案1: HANDLE hFile = CreateFile(L“C://XXX.xml”, GENERIC_WRITE,FILE_SHARE_READ,NULL,CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL,NULL); if ( hFile != INVALID_HANDLE_VALUE ) {DWORD dwNumWritten = 0;BOOL bRes = WriteFile( hFile, wpszText, nLen, &dwNumWritten, NULL);CloseHandle(hFile); } 方案2: FILE *pf =_w fopen(L“C://sms.xml”, “wb+,ccs=unicode”); if (pf) {Size_t szLen = fwrite(pszText, 1, nLen,pf); fclose(pf); } 3)Utf-8文件 FILE *pf = _wfopen( L"c://sms.xml",L"wb+,ccs=UTF-8"); if ( pf ) {size_t szLen = fwrite(pUtf8Text, 1, nLen, pf);fclose(pf); }3、测试本代码在VC6及VS2005.NET下测试通过。4、待解决问题本文只是讨论文件的生成,对于生成的文件,如果含有超出编码范围的特殊字符,xml仍然是非法XML文件,比如,对于utf-8的xml文件,如果内含十六进制值0XFF,0XFE的内存,就是一个非法XML文件。怎样让XML文件有效,是我们进一步需要弄清楚的问题。5、参考略。
- 多种编码格式文件的保存
- Linux下BMP格式文件的保存问题
- 谈谈预览文档和其它多种格式文件的实现方法
- 如何转换js格式文件的编码
- 霍夫曼编码的多种实现
- Notepad++的多种编码支持
- 将windows下的GBK编码格式文件转化为Linux下UTF-8编码格式文件
- 打开保存指定格式文件
- matlab中将数据输出保存为txt格式文件的方法
- 用变量保存多种类型的数据
- 用变量保存多种类型的数据
- 怎么修改文件的编码格式文件的换行格式
- 怎么修改文件的编码格式文件的换行格式
- 多种编码的基本转换(收集)
- cubby对应多种编码的做法
- 识别常见编码格式文件并转换成UTF-8编码的java实现
- MediaScanner添加对多种音频文件ID3信息的保存支持
- java多种保存2位小数的对比
- 几近崩溃。。
- Response.Redirect 异常
- 查询域名的 MX 交换记录
- moncler down
- 一对夫妇的离婚账单
- 多种编码格式文件的保存
- java 的Refect 实例
- 经典 全选 取消JavaScript
- 一个很小的动物本体 owl文件
- 13亿人看了都哭了(真感人)
- 前同事的“征服”
- java.io.EOFException 问题解决办法
- 开源软件Source-Navigator安装方法
- Serializable transient static