1. 背景介绍
C++在处理字符串时,常常会碰到宽字符(中日韩等非ACSII码字符),默认的标准库 std::string
处理的仅是 char
类型的字符串。通常,在 Unix/Linux 系统中,字符串是 UTF-8 编码的,此时,std::string
中存储的即为 UTF-8 编码后的结果。例如:“你好啊,Stick”,这句话中有 9 个字符,但实际存储在 std::string
中的内容为:"\xe4\xbd\xa0\xe5\xa5\xbd\xe5\x95\x8a\xef\xbc\x8cStick" 实际长度为 17. 那么如何才能将 UTF-8 的编码转换为实际的 Unicode 编码呢?