2017-03-10 18 views

答えて

0

文字は、シングルバイト、ダブルバイト、トリプルバイトなどとすることができます。特定の範囲でシングルバイトが続きます。他のキャラクターにも同じことが当てはまります。これに基づき、私はそう機能を超えるメモリに基づい

function getByteLength(normal_val) { 
    // Force string type 
    normal_val = String(normal_val); 

    var byteLen = 0; 
    for (var i = 0; i < normal_val.length; i++) { 
     var c = normal_val.charCodeAt(i); 
     byteLen += c < (1 << 7) ? 1 : 
       c < (1 << 11) ? 2 : 
       c < (1 << 16) ? 3 : 
       c < (1 << 21) ? 4 : 
       c < (1 << 26) ? 5 : 
       c < (1 << 31) ? 6 : Number.NaN; 
    } 
    return byteLen; 
} 

上の文字列のサイズを計算します次の関数を作成している機能は、シングルバイトまたはマルチバイトであるかどうかを確認するように変更することができます。

js fiddleは、入力したテキストのサイズをメモリの観点から決定します。

http://jsfiddle.net/paraselixir/d83oaa3v/5/

ストリングは、x文字を有しており、メモリのサイズは、x === yは、全ての文字が単一バイト ありそうである場合、Y ありそうである場合であれば2 * X === yは、すべての文字はダブルバイト それ以外の場合、stringは1バイトと2バイト/複数バイトの組み合わせです。

関連する問題