utf-8转ansi linux c,如何使用标准c将UTF-8转换为ANSI
几天前,有人回答说,如果我有一个C 11编译器,我可以试试这个:#include #include #include string utf8_to_string(const char *utf8str, const locale& loc){// UTF-8 to wstringwstring_convert> wconv;wstring wstr = wconv.from_byte
几天前,有人回答说,如果我有一个C 11编译器,我可以试试这个:
#include
#include
#include
string utf8_to_string(const char *utf8str, const locale& loc)
{
// UTF-8 to wstring
wstring_convert> wconv;
wstring wstr = wconv.from_bytes(utf8str);
// wstring to string
vector buf(wstr.size());
use_facet>(loc).narrow(wstr.data(), wstr.data() + wstr.size(), '?', buf.data());
return string(buf.data(), buf.size());
}
int main(int argc, char* argv[])
{
string ansi;
char utf8txt[] = {0xc3, 0xa1, 0};
// I guess you want to use Windows-1252 encoding...
ansi = utf8_to_string(utf8txt, locale(".1252"));
// Now do something with the string
return 0;
}
不知道响应发生了什么,显然有人删除了它.但是,事实证明它是完美的解决方案.对于谁发布,非常感谢,你应该得到AC和upvote !!
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐

所有评论(0)