2013-05-27 32 views
2

我有點困惑。 pugi :: xml_node ::值()返回類型chart_t的串,其可以是爲wchar_t或焦取決於編譯標誌。在pugiXML的文檔中說,它可以與utf家族編碼的不同類型一起工作。好。我使用pugi :: xml_document :: LOAD_FILE()在uft16編碼文件加載。那麼當我迭代拋出節點並在每個節點上調用value()方法時,我將在哪個編碼中獲得價值?大概在編碼我的數據,我已經加載到xml_document。這意味着在utf16中。如果在UTF16然後我就無法與價值的工作,因爲會有0符號,我將不能使用的strlen,strcpy的一個等等... 我做了這樣的測試,但一切工作正常。任何人都知道它是如何工作的?PugiXML值輸出編碼

回答

2

有兩種編譯模式 - 默認,文檔在char數組中使用UTF8存儲內存數據,以及wchar模式(PUGIXML_WCHAR_MODE),其中數據使用UTF16或UTF32存儲在wchar_t數組中,取決於sizeof(wchar_t)。

當要加載或保存文檔,pugixml自動解碼輸入的數據或編碼由「編碼」參數爲負荷指定在編碼輸出數據/保存功能。

在你的情況,pugixml自動檢測輸入文件包含UTF16數據,並將其解碼爲UTF-8,這是你的價值得到什麼()。