多少字節來存儲一個字符:在.NET和JavaScript中存儲一個字符需要多少字節?
- Microsoft實現.NET框架版本4
- JavaScript中,如微軟的Internet Explorer 8中實現?
多少字節來存儲一個字符:在.NET和JavaScript中存儲一個字符需要多少字節?
兩個.NET和JavaScript使用UTF-16。 UTF-16是所謂的可變長度編碼,其使用16位碼單元來表示Unicode碼碼點(它們是21位長)。從歷史上看,當Unicode仍然是一個16位代碼時(後來認爲不足,因此擴展到21位),它來自UCS-2。
由於UTF-16採用16位代碼,單位代碼,本身是一個16位代碼,而是代表一個字符,你必須更關注一些什麼你實際上意味着:
字在Unicode的意識,就是Unicode代碼點這可能是你的本意。這裏有兩種情況:
字的通常含義往往是指字形,實際上,這將是我們所認爲的單個字符。這些可以具有任意多個變音符,或者可以是由渲染引擎由多個代碼點形成的連字。長話短說在這種情況下:這些可以是任意長的,因爲它們可以由幾個代碼點組成。
.NET和JavaScript都是UTF-16:
表示每種Unicode代碼點爲一個或兩個16位整數 的序列。雖然Unicode補充字符(U + 10000和更大) 需要兩個UTF-16替代碼點,但最常見的Unicode字符只需要一個UTF-16碼 點。支持big-endian和 big-endian字節順序。
因此它可以是16位或32位。
兩者都不是16位。兩者都使用UTF-16(帶有一些JavaScript特性),儘管這是一種可變長度編碼,但它的名字仍然存在。 –
UTF-16表示16位Unicode Unicode,不是嗎? – Damith
UTF-16意味着它使用16位*代碼單元*來表示Unicode的21位*代碼點*。所以你需要一個或兩個這樣的代碼單元用於單個代碼點,這取決於代碼點。 – Joey