我在unicode中有一个刺痛是“hao123--我的上网主页”,而在utx8中的C ++字符串是“hao123:ha戠涓涓涓涓>,”,但是我应该把它写成一个文件格式为“hao123 \ uFF0D \ uFF0D \ u6211 \ u684 \ u4E0A \ u7F51 \ u4E3B \ u9875”,我该怎么办呢。我对这种编码知之甚少。有人可以帮忙吗?谢谢!
答案 0 :(得分:2)
您似乎混淆了UTF-8和UTF-16(或可能是UCS-2)。 UTF-8编码字符的长度可变为1到4个字节。与此相反,您似乎想要将UTF-16或UCS-2写入您的文件(我猜测这是来自文件输出字符串中的\uxxxx
字符引用)。
有关这些字符集的概述,请查看Wikipedia's article on UTF-8并从那里浏览。
以下是一些非常基本的基础知识(大大简化):
UCS-2将所有字符精确存储为16位。因此,它不能编码所有Unicode字符,只能编码所谓的“基本多语言平面”。
UTF-16以16位存储最常用的字符,但有些字符必须以32位编码。
UTF-8对可变长度为1到4个字节的字符进行编码。只有原始7位ASCII字符集中的字符编码为1个字节。