替换像č;、这样的字符šć;以字符串的形式将其html代码C++;

替换像č;、这样的字符šć;以字符串的形式将其html代码C++;,html,c++,Html,C++,我正在使用cppresthttp\u客户端从RSS链接获取数据 我查看的数据存储如下: container_buffer<std::string> buffer; response.body().read_to_end(buffer).get(); //use buffer.collection() to get data; container\u缓冲区; response.body().read_to_end(buffer.get(); //使用buffer.collection

我正在使用cpprest
http\u客户端
从RSS链接获取数据

我查看的数据存储如下:

container_buffer<std::string> buffer;
response.body().read_to_end(buffer).get();
//use buffer.collection() to get data;
container\u缓冲区;
response.body().read_to_end(buffer.get();
//使用buffer.collection()获取数据;
然后将其传递给绘图库,绘图库采用
const char*

现在,如果收到的数据是韩语的,例如

지방 아파트 분양시장 `양극화

它显示得很好

但是如果数据是用克洛坦语或斯洛伐克语等

莫古奇州普柳斯科维马州基索姆市

人物

č,š,ć

显示为

<?>

下面是我尝试过的一些事情:

  • 我有gcc 4.8.1,因此不支持
    std::codevt

  • 如果我试图直接以字符串形式存储数据,即

    std::字符串数据
    data=response.extract_string().get()

    克洛坦语或斯洛伐克语的表演很恰当,但韩语的表演被扭曲了

  • 如果我试图将č,š,ć替换为它们的html代码:

    boost::替换所有(str,“æ”和“æ;”)//增加的空间,此处仅显示为æ

    boost::全部替换(str,“ž”、“&382;”)

    boost::替换_all(str,“š”和“&scaron;”)

    boost::全部替换(str,“è”和“è;”)

  • 和前面一样,这些字符显示正确,但也会妨碍使用韩语字符,并将某些韩语字符替换为这些字符


    我该如何处理才能正确显示所有字符?

    您在问题中没有给出足够的细节,但您对某些拉丁语内容产生问题的原因可能是因为它使用了
    iso-8859
    字符集之一进行编码,您的区域设置的字符集是
    UTF-8

    唯一能够正确显示任何
    HTTP
    响应内容中所有字符的方法:

    1) 从
    HTTP
    “Content Type:”标题中获取
    charset
    属性,它将告诉您用于编码此
    HTTP
    响应正文的字符集

    < P > 2)使用一个库,如 LBICONV,如果C++库不提供可比的区域转换,则将代码“> http:/COD>响应从编码字符集转换为您的区域设置的字符集。


    根据我的经验,使用
    libiconv
    更可靠,因为
    C++
    标准并不能保证支持哪些语言环境。

    您在问题中没有给出足够的细节,但您对某些拉丁语内容产生问题的原因可能是因为它使用
    iso-8859
    字符集之一进行编码,而您所在地区的字符集是
    UTF-8

    唯一能够正确显示任何
    HTTP
    响应内容中所有字符的方法:

    1) 从
    HTTP
    “Content Type:”标题中获取
    charset
    属性,它将告诉您用于编码此
    HTTP
    响应正文的字符集

    < P > 2)使用一个库,如 LBICONV,如果C++库不提供可比的区域转换,则将代码“> http:/COD>响应从编码字符集转换为您的区域设置的字符集。


    根据我的经验,使用
    libiconv
    更可靠,因为
    C++
    标准并不能保证支持哪些区域设置。

    response.headers().content\u type()以文本/xml的形式为我提供结果,我需要使用其他api来获取字符集吗,查看该链接的页面源显示编码为“windows-1250”。您需要研究如何检索该值。对windows-1250的引用来自XML处理指令。对于text/xml,UTF-8是默认的编码内容。
    response.headers().content\u type()
    将结果作为text/xml提供给我,我是否需要使用任何其他api来获取字符集?嗯,查看该链接的页面源代码显示编码为“windows-1250”。您需要研究如何检索该值。对windows-1250的引用来自XML处理指令。对于文本/xml,UTF-8是默认的编码内容。您的帖子中没有任何内容描述您处理编码、代码页等所采取的步骤。如果您有一系列超出ASCII范围的字节,则您无法在文本处理方面对它们做任何事,除非您知道什么字符集,您正在处理的编码等。您的帖子中没有任何内容描述您处理编码、代码页等所采取的步骤。如果您有一系列超出ASCII范围的字节,则您无法在文本处理方面对它们进行任何处理,除非您知道您正在处理的字符集、编码等。