Encoding utf8与编码

Encoding utf8与编码,encoding,utf-8,Encoding,Utf 8,我在unicode中有一个错误是hao123-我的上网主页, 而在C++中的UTF8字符串是HOO123锛嶏紞鎴戠殑涓婄綉涓婚〉, 但是我应该以这种格式将其写入一个文件hao123\uFF0D\uFF0D\u6211\u7684\u4E0A\u7F51\u4E3B\u9875,我该怎么做呢。我对这种编码知之甚少。有人能帮忙吗?谢谢 您似乎混淆了UTF-8和UTF-16,或者可能是UCS-2。UTF-8编码字符的可变长度为1到4字节。与此相反,您似乎希望将UTF-16或UCS-2写入到文件中。

我在unicode中有一个错误是hao123-我的上网主页, 而在C++中的UTF8字符串是HOO123锛嶏紞鎴戠殑涓婄綉涓婚〉, 但是我应该以这种格式将其写入一个文件hao123\uFF0D\uFF0D\u6211\u7684\u4E0A\u7F51\u4E3B\u9875,我该怎么做呢。我对这种编码知之甚少。有人能帮忙吗?谢谢

您似乎混淆了UTF-8和UTF-16,或者可能是UCS-2。UTF-8编码字符的可变长度为1到4字节。与此相反,您似乎希望将UTF-16或UCS-2写入到文件中。我从文件输出字符串中的\uxxx字符引用猜到这一点

有关这些角色集的概述,请查看并从此处进行浏览

以下是一些经过大量简化的基础知识:

UCS-2将所有字符精确存储为16位。因此,它不能对所有Unicode字符进行编码,只能对所谓的基本多语言平面进行编码

UTF-16以16位存储最常用的字符,但某些字符必须以32位编码

UTF-8编码长度为1到4字节的可变字符。只有来自原始7位ASCII字符集的字符被编码为1字节


是任何C++库把它转换成UTF16的吗?