TinyXML 解析 UTF-8 字符串的问题
来源:互联网 发布:cf手游刷钻石软件 编辑:程序博客网 时间:2024/06/14 05:26
分析代码,发现失败的原因是如下的代码:
tinyxmlparser.cpp 文件中的函数:const char* TiXmlBase::ReadText()
int len;char cArr[4] = { 0, 0, 0, 0 };p = GetChar( p, cArr, &len, encoding );if ( len == 1 )(*text) += cArr[0];// more efficientelsetext->append( cArr, len );
初步分析,是对 UTF-8 字符串的解析问题。
解析使用了如下的表:
const int TiXmlBase::utf8ByteTable[256] = {// 0 1 2 3 4 5 6 7 8 9 a b c d e f1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 0x001, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 0x101, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 0x201, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 0x301, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 0x401, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 0x501, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 0x601, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 0x70 End of ASCII range1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 0x80 0x80 to 0xc1 invalid1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 0x90 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 0xa0 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 0xb0 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, // 0xc0 0xc2 to 0xdf 2 byte2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, // 0xd03, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, // 0xe0 0xe0 to 0xef 3 byte4, 4, 4, 4, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 // 0xf0 0xf0 to 0xf4 4 byte, 0xf5 and higher invalid};
此表网上可以 google 到的。为何会解析失败,原因待查。
- TinyXML 解析 UTF-8 字符串的问题
- tinyxml解析UTF-8字符集的xml
- tinyxml 对字符串的解析
- Tinyxml处理UTF-8
- tinyXML文件保存编码(UTF-8, GB2312)相关的一个问题
- CMarkup与tinyXml直接解析XML字符串
- CMarkup与tinyXml直接解析XML字符串
- TinyXml解析复杂xml字符串总结
- tinyxml解析内存中的字符串缓冲区
- CMarkup与tinyXml直接解析XML字符串
- 解析XML的利器-TinyXML
- utf-8的问题
- 在Windows下使用TinyXML-2读取UTF-8编码包含中文字符的XML文件
- 我在CSDN的第一篇博文,关于TinyXml类库 解析 xml文件或字符串
- TINYxml使用的一些问题
- 关于dom4j无法解析xmlns问题及生成非UTF-8字符集乱码问题的解决
- xml_document_slave_ti 读取UTF-8格式XML字符串无法解析
- C++ tinyxml解析小试及VC6.0调试中遇到的问题
- WinCE UDP 问题
- 原根
- 构建现代化网站的 20 个技巧
- Stanford ML - Lecture 9 - Clustering
- IOS应用程序文件目录的操作
- TinyXML 解析 UTF-8 字符串的问题
- 程序员的年度计划
- 微软确认明年7月全面停止WP8技术支持
- 乱码解决方案
- java输出特殊符号
- Dojo Start
- EDWorkFlow工作流
- 在线音乐网站---(could not execute query)数据库查询错误
- IOS 调用打电话,发信息,email功能