2017-03-10 1 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 바이올린은 입력 된 텍스트의 크기를 메모리 측면에서 결정합니다.

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

문자열 X 문자가 메모리 크기는 X === Y는 모든 문자가 단일 바이트 그래서 만약 Y 그래서 만약 있다면 2 * X === Y는 모든 문자는 더블 바이트 그렇지 않으면 string은 단일 바이트와 이중/다중 바이트의 조합입니다.

관련 문제