2010-04-19 224 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