2010-04-19 226 views
-1

我在unicode中有一个sting是“hao123--我的上网主页”,而在C++中的utf8字符串是“hao123”或“我不知道”,但我应该写它以这种格式的文件“hao123 \ uFF0D \ uFF0D \ u6211 \ u7684 \ u4E0A \ u7F51 \ u4E3B \ u9875”,我该怎么做。我对这种编码知之甚少。谁能帮忙?谢谢!utf8和编码

回答

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个字节。

+0

这是任何C++库将其转换为UTF16? – Dan 2010-04-19 15:50:27

+0

也许下面的内容会有所帮助:*什么是C最好的unicode库?(http://stackoverflow.com/questions/114611/what-is-the-best-unicode-library-for-c)和* ustring库*(http://sourceforge.net/projects/ustring/) – stakx 2010-04-19 16:43:14