- 主题:g++里怎么把GBK字符串转成UTF-8字符串?谢谢
求一段简单示例。谢谢。
--
FROM 58.33.198.*
string source = "....";
string s = boost::locale::conv::to_utf(source, "GBK");
【 在 Madlee (无竹居士) 的大作中提到: 】
: 求一段简单示例。谢谢。
--
FROM 124.207.9.*
好用,谢谢。虽然要搞一个boost很痛苦。
【 在 jszizsj 的大作中提到: 】
: string source = "....";
: string s = boost::locale::conv::to_utf(source, "GBK");
:
: ...................
--
FROM 58.33.185.*
不想要boost就直接调用libiconv,就是个C库而已,总共才5个函数。
https://www.gnu.org/software/libiconv/
【 在 Madlee 的大作中提到: 】
: 好用,谢谢。虽然要搞一个boost很痛苦。
:
--
FROM 171.88.43.*
Windows自带icu库,用这个应该不用担心库自带数据大小问题。其实如果只是GBK转UTF8的话,用标准库应该也可以:
std::filesystem::path(gbk_str, std::locale("zh_CN.gbk")).u8string();
【 在 hgoldfish 的大作中提到: 】
: 但是这个 iconv 数据库特别大。
: 如果只在 windows 底下用。可以用 win32api 的一系列函数。
:
--
FROM 222.129.50.*
你这个需要c++17
【 在 ble 的大作中提到: 】
: Windows自带icu库,用这个应该不用担心库自带数据大小问题。其实如果只是GBK转UTF8的话,用标准库应该也可以:
: std::filesystem::path(gbk_str, std::locale("zh_CN.gbk")).u8string();
:
--
FROM 121.69.39.*
【 在 hgoldfish 的大作中提到: 】
: 但是这个 iconv 数据库特别大。
: 如果只在 windows 底下用。可以用 win32api 的一系列函数。
:
数据大是因为把所有语言的unicode编码映射都放进去了啊
兜底的做法是把gbk的编码映射从现有的库里取出来,放到自己的程序里,然后自己做转换
--
FROM 111.206.145.*
这个反过来怎么用啊,就是utf8===>gbk
【 在 Madlee 的大作中提到: 】
: 求一段简单示例。谢谢。
--
FROM 124.78.14.*