請指定Windows和Linux機器之間是否存在表示差異(,如std :: wstring在Linux中佔用4個字節,在Windows中爲2個字節,在中佔用2個字節)。
如果需要,還請指定字節順序。您可以編寫「U + 9FA5(龥)」和「U + 0041(A)」unicode字符的UTF-8,UTF-16和std :: wstring表示嗎?
回答
不,我不能。但是this site可以。
我非常好的網站,清楚地說明了UTF-8和UTF-16的二進制代碼。加上馬丁約克這個事實,std :: wstring只是一個容器類型,我的問題得到了回答。 – hkBattousai 2010-11-24 13:04:59
這是你想要的東西:
int main()
{
std::wstring data1 = L"U+9FA5 (\0x9FA5)";
std::wstring data2 = L「U+0041 (A)";
}
的wstring的只是wchar_t的對象的容器。
沒有暗示的字符編碼(它只是存儲你把它放在什麼地方)。
Windows wchar_t目前是2個字節,所以它可能只能存儲UTF-16字符。 Linus wchar_t通常是4個字節。所以它可以使用UTF-16或UTF-32編碼。雖然這是最常見的情況,但這些重疊和上半部分都是零(當然,例外情況是代碼點不在BMP或代理對上)。
注意:UTF-8字符通常不在內部使用(雖然它們可以)在應用程序中,因爲它們不是固定寬度。但由於它的可壓縮性,它對於傳輸和存儲非常有用(並且與ASCII的向後兼容性不會受到影響)。
注意:C/C++不排除其字符串使用其他編碼格式。
UTF-8 *在GNOME(glib)中內部使用,我認爲glib是完全正常的。此外,Win32使用UTF-16,這是不固定的。 – upriser 2010-11-24 09:04:26
UTF-16BE是MS Office系列產品中使用的代碼頁,它將所有字符存儲爲2個字節,並且與Unicode字符集的「標準」部分非常相似。
Linux可能使用utf-8將標準ASCII字符存儲在單個字節中,但可能會根據unicode代碼點將其他Unicode字符存儲在兩個,三個或四個字節中。由於最左邊的位用標誌佔據,表示它不是ascii,以及你是多遠字符還是多遠。 (這個想法是你可以跳到一個隨機字節的utf-8字符串,並能夠找到你所在的字符的開頭。)
對於大多數具有高代碼點的遠東字符集以unicode爲單位(由Java使用)通常在空間和處理時間上比UTF-8更有效。
- 1. UTF8:U + 00E9é分成U + 0065 e和U + 00B4'
- 2. json.dumps帶有\ U轉義的unicode爲utf8
- 3. 將BOM設置爲Unicode U碼UTF8 perl
- 4. DOS-CSV導入(A,U,O,A,U,O)
- 5. PHP 5,XSL和字符U
- 6. 假設用戶可以在CSS內容中看到unicode字符U + 2716和U + 2714是否安全?
- 7. 字符到Unicode超過U + FFFF在Java?
- 8. 布爾邏輯簡單化,爲什麼A E U + A E U + A E U = E(A + U)
- 9. 如何刪除u表示字符串是unicode
- 10. iOS和unicode字符:\ u + 2605不是UILabel中的明星
- 11. 我的UTF8字符串中的Django \ u字符
- 12. Python/Django將u''字符串寫入Postgresql(使用UTF8 DB)和Munges Entry
- 13. Swift:如何將\ U文字編碼替換爲純UNICODE字符?
- 14. PHP,JSON和\ u-somethings
- 15. git pull U,A和D標籤:含義?
- 16. 做拉丁大寫字母I(U + 0049)和羅馬數字一(U + 2160)使用Unicode兼容性等價?
- 17. UTF8中可以有一個Unicode連字符多個表示形式嗎?
- 18. 總和數u和列表x u + x1 + x2的方案函數
- 19. python符號%u和%o
- 20. 字符串和UTF16
- 21. UIActionSheet和UIView
- 22. 如何在VB.NET中的字符串中保留特殊的雙引號? (Unicode的U + 0093和U + 0094)
- 23. 子彈字符(U + 2022)可以安全使用嗎?
- 24. U []可以轉換爲T []嗎?
- 25. 顯示上述U + FFFF Unicode字符在Windows
- 26. ELF符號可以用UTF8表示嗎?
- 27. Unicode和可接受的參數「帶有\ U {}」
- 28. python u'\ u00b0'返回u'\ xb0'。爲什麼?
- 29. tkinter.TclError:字符U + 1f449高於Tcl允許的範圍(U + 0000-U + FFFF)
- 30. 編碼包含U + 001A
你是什麼意思這些已經是Unicode字符。 – 2010-11-24 08:41:19
^我沒有這樣說過。 – hkBattousai 2010-11-24 13:00:36