首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

小弟我从网页中读取到UTF-8的数据,遇到一个这样的有关问题

2013-09-09 
我从网页中读取到UTF-8的数据,遇到一个这样的问题比如我读取到的数据放在string web_page_data但我有这样

我从网页中读取到UTF-8的数据,遇到一个这样的问题
比如我读取到的数据放在string web_page_data;

但我有这样的一个问题,我需要在控制台用std::cout显示的时候,数据是乱码的:

小弟我从网页中读取到UTF-8的数据,遇到一个这样的有关问题


但我写到文件中,比如e:\\data.txt
在用记事本打开,里面的数据是正常的


不过,话又说回来了,我想把这些对应的数据,放到std::map<string, string>中
key是对应网页的title
value是整个网页的数据


我想通过这个key来查找到value,但是这个时候乱码的……就不好弄了



请问一下,大家有什么办法解决么?
[解决办法]
只是你看到乱码而已!对你操作应该没有影响的吧
[解决办法]

引用:
他就找不到对应的item

string默认不是utf-8也不是unicode编码的,记得wstring是unicode的
你需要把string里面的内容转成utf-8,再去匹配

当然你也可以把网页内容转成gb2312的,不过这没把string的转再匹配速度快

至于转换,网上多了,用iconv或者atl的库函数就可以
[解决办法]
引用:
Quote: 引用:

只是你看到乱码而已!对你操作应该没有影响的吧

有影响 比如我find:
map<string,string>::iterator iter;
for (iter = m.begin(); iter != m.end(); iter++)
{
fout << iter->first << "===" << iter->second << endl;
cout << iter->first << "===" << iter->second << endl;
if (iter->first == "印象咖啡")
{
cout<< "test" <<endl;
}
fout.flush();
}


嘿嘿,你把"印象咖啡"这几个字写到一个txt里头,保存为utf8文件后再在程序中读出来,然后再做比较,你看看是否行得通?
我始终搞不明白坑爹的vs为什么新建cpp总要选择936作为编码

热点排行