如果我在JavaScript中有一個字符串什麼是計算字符串佔用的字節數或位數的最佳方法?我的第一個想法是,由於EcmaScript規範(5.1)在8.4中聲明EcmaScript中的字符串元素由16位值組成,並且語言使用UTF-16字符編碼,所以我應該得到該代碼的十進制表示形式(charCodeAt),除以2,結果爲底,Bob是你父親的兄弟。有誰知道如何計算字符串中的字節數?
但如果我每個字符轉換爲二進制(的toString(2)),以數位,我算的0和1的?或者只是1的?
從我在線閱讀(和信息是稀疏的),我想這是這樣的:
Math.floor("A".charCodeAt(0)/2); // 32 bits... No?
這是相當混亂。在M字節符號的字母表上長度爲N的字符串需要N×M個字節來表示......這很簡單。它需要多個位的8倍。 – Patrick87
@shelman是的,但我是否計算0和1的二進制數?或者只是1,因爲1代表「開」狀態,而0代表「關」狀態。 – Tom
UTF-16不是固定寬度編碼(http://unicode.org/faq/utf_bom.html#utf16-1)。一個字符可以佔用16位或32位,但通常它可以放入16位。 – Krab