我正在C++中使用libxml2創建一個xml文檔。創建xml文件後,我在xml緩衝區的頂部看到以下行。在C++中的libxml2,如何設置編碼
<?xml version="1.0" encoding="ISO-8859-1"?>
我在創建文檔時沒有指定任何編碼。某些xml內容ascii值大於127,這不是由ISO-8859-1編碼處理的。例如:我的英文字符(£)在我的xml內容中。所以無論什麼時候遇到大於127的ascii值,它都會中斷並且我的xml文件不完整。我從一些論壇上讀到說,將編碼更改爲UTF-8將處理這種情況。但我不知道如何爲xml文檔創建指定編碼。以下是我用過的示例代碼。
xmlDoc *doc = NULL;
xmlChar *xmlbuff = NULL;
int buffersize;
xmlNodePtr pNode;
doc = xmlNewDoc(NULL);
pNode = xmlNewNode(0, (const xmlChar*)"Temp");
xmlDocSetRootElement(doc, pNode);
xmlSetProp(pNode, (const xmlChar*)"Item", (const xmlChar*)"Office£");
xmlDocDumpMemory(doc, &xmlbuff, &buffersize);
xmlFree(xmlbuff);
xmlFreeDoc(doc);
doc = NULL;
輸出:
<?xml version="1.0" encoding="ISO-8859-1"?>
<Temp Item="Office
提示:觀察到的行爲是由您的來電xmlSetProp觸發。你如何看待「項目」的價值? –