tinyxml怎么改变xml文件的编码
答案:1 悬赏:20 手机版
解决时间 2021-03-07 00:40
- 提问者网友:相思似海深
- 2021-03-06 19:16
tinyxml怎么改变xml文件的编码
最佳答案
- 五星知识达人网友:举杯邀酒敬孤独
- 2021-03-06 20:48
关于tinyxml使用的文档有很多(这篇文章就写的很好),这里仅提一下字符编码的转换问题,如果你不熟悉字符编码最好先阅读一下计算机内存和文件中的UNICODE字符.
tinyxml定义的类或函数中涉及的字符大都是char,字符串指针也是char*或const char*,看一下面几个函数:
const char* TiXmlElement::Attribute( const char* name ) const
int TiXmlElement::QueryIntAttribute( const char* name, int* ival ) const
...
这样在你的应用程序中获取的字符串就是const char*类型,如果你的XML文档指定是UTF-8编码(注意保存的时候也是以UTF-8编码方式保存的),例如:
<?xml version="1.0" encoding="UTF-8">
<root>
<item>中文字符</item>
</root>
而你的应用程序可能是UNICODE,也可能是多字节,那么在应用程序中会这样读xml文档:
TiXmlDocument doc("UTF8test.xml");
doc.LoadFile(TIXML_DEFAULT_ENCODING);//TIXML_DEFAULT_ENCODING指明按照UTF-8编码方式读取xml文档
TiXmlElement* root = doc.RootElement();
TiXmlNode* node = root->FirstChild("item");
TiXmlElement* element = node->ToElement();
const char* text = element->GetText();
tinyxml定义的类或函数中涉及的字符大都是char,字符串指针也是char*或const char*,看一下面几个函数:
const char* TiXmlElement::Attribute( const char* name ) const
int TiXmlElement::QueryIntAttribute( const char* name, int* ival ) const
...
这样在你的应用程序中获取的字符串就是const char*类型,如果你的XML文档指定是UTF-8编码(注意保存的时候也是以UTF-8编码方式保存的),例如:
<?xml version="1.0" encoding="UTF-8">
<root>
<item>中文字符</item>
</root>
而你的应用程序可能是UNICODE,也可能是多字节,那么在应用程序中会这样读xml文档:
TiXmlDocument doc("UTF8test.xml");
doc.LoadFile(TIXML_DEFAULT_ENCODING);//TIXML_DEFAULT_ENCODING指明按照UTF-8编码方式读取xml文档
TiXmlElement* root = doc.RootElement();
TiXmlNode* node = root->FirstChild("item");
TiXmlElement* element = node->ToElement();
const char* text = element->GetText();
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯