자바 스크립트 (노드), 27 바이트
s=>s.map(Buffer.byteLength)
이것은 입력을 개별 문자의 배열로 받아서 바이트 수의 배열을 반환합니다.
Buffer
원시 이진 데이터를 나타내는 방법입니다. Buffer.byteLength (string) 는 문자열 의 바이트 수를 제공합니다. UTF-8이 기본 인코딩입니다. 브라우저 JS가 아닌 Node.js에만 버퍼가 있습니다. 대략적인 브라우저는 Blob 이며 31 바이트로 제공됩니다.
s=>s.map(e=>new Blob([e]).size)
테스트
이 파일을 저장하고 노드를 통해 실행하거나 온라인으로 시도하십시오 .
var f =
s=>s.map(Buffer.byteLength)
var tests = [
["!"],
["C","i","a","o"],
["t","ʃ","a","ʊ"],
["A","d","á","m"],
["ĉ","a","ŭ"],
["c","̂","a","u","̆"],
["チ","ャ","オ"],
[],
["!","±","≡","𩸽"]
];
tests.forEach(test => {
console.log(test, f(test));
});
결과는 다음과 같습니다.
$ node bytes.js
[ '!' ] [ 1 ]
[ 'C', 'i', 'a', 'o' ] [ 1, 1, 1, 1 ]
[ 't', 'ʃ', 'a', 'ʊ' ] [ 1, 2, 1, 2 ]
[ 'A', 'd', 'á', 'm' ] [ 1, 1, 2, 1 ]
[ 'ĉ', 'a', 'ŭ' ] [ 2, 1, 2 ]
[ 'c', '̂', 'a', 'u', '̆' ] [ 1, 2, 1, 1, 2 ]
[ 'チ', 'ャ', 'オ' ] [ 3, 3, 3 ]
[] []
[ '!', '±', '≡', '�' ] [ 1, 2, 3, 4 ]