RapidXml 无法解析包含 unicode 的 xml

RapidXml fails to parse xml which has unicode containts

我正在尝试解析具有 Unicode 字符的 xml,但是当我调用解析函数时 rapidxml 出现异常。

附上代码片段。

注意:相同的代码能够解析 ascii containt。

bool
ParseXmlData(const std::wstring &XmlData)
{
    LPCTSTR thisMethod = L"ParseXmlData()";
    wchar_t* wc_xmlstring = wcsdup(XmlData.c_str());

    xml_document<wchar_t> xmldoc;

    try
    {
        xmldoc.parse<0>(wc_xmlstring);
    }
    catch (rapidxml::parse_error &e)
    {
        std::cout << e.what()
        free (dupStr);
       return false;
    }

    -
    -
    -
    -
    return true
}

我可以用你的输入重现你的问题,但并不是每个韩语字符都能重现。 原来rapidxml在外面解析字符的时候有bug table size.

您可以找到完整补丁 here。我已确认应用此补丁后问题已解决。
希望有用。