-1
다국어 사이트 (특히 일본어 및 중국어)에서 작업해야 할 때마다 어려움을 겪고 있으며 문자를 입력 할 수 있습니다. 지역 언어.단일 바이트, 더블 바이트, 트리플 바이트 문자 사용자가 입력 한 문자를 찾는 방법
다국어 사이트 (특히 일본어 및 중국어)에서 작업해야 할 때마다 어려움을 겪고 있으며 문자를 입력 할 수 있습니다. 지역 언어.단일 바이트, 더블 바이트, 트리플 바이트 문자 사용자가 입력 한 문자를 찾는 방법
문자는 싱글 바이트, 더블 바이트, 트리플 바이트 등이 될 수 있습니다. 특정 범위에서 단일 바이트가옵니다. 다른 문자들도 마찬가지입니다. 이를 바탕으로 내가 그래서 기능 이상
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은 단일 바이트와 이중/다중 바이트의 조합입니다.