JavaScriptで文字列をUTF-8文字コードとして処理する方法
JavaScriptで文字列をUTF-8文字コードとして処理する方法のメモです。動作確認環境はWindows 10、Google Chrome 79.0.3945.130です。
- 文字列を16進数UTF-8文字コードに変換して半角スペースで区切る
- 文字列を文字毎に10進数UTF-8文字コードに変換した二次元配列を作成する
- 文字列を文字毎に16進数UTF-8文字コードに変換した二次元配列を作成する
- 文字列を文字毎に16進数UTF-8文字コードに変換して半角スペースと改行で区切る
- 備考
文字列を16進数UTF-8文字コードに変換して半角スペースで区切る
const string1 = "あいうえお" Array.from((new TextEncoder()).encode(string1), x => x.toString(16).padStart(2, '0')).join(' ') // "e3 81 82 e3 81 84 e3 81 86 e3 81 88 e3 81 8a"
文字列を文字毎に10進数UTF-8文字コードに変換した二次元配列を作成する
const encoder= new TextEncoder() const string1 = "あいうえお" Array.from(string1, s => Array.from(encoder.encode(Array.from(s)))) // [227, 129, 130], [227, 129, 132], [227, 129, 134], [227, 129, 136], [227, 129, 138]
文字列を文字毎に16進数UTF-8文字コードに変換した二次元配列を作成する
const encoder= new TextEncoder() const string1 = "あいうえお" Array.from(string1, s => Array.from(encoder.encode(Array.from(s)), code => code.toString(16))) // ["e3", "81", "82"], ["e3", "81", "84"], ["e3", "81", "86"], ["e3", "81", "88"], ["e3", "81", "8a"]
文字列を文字毎に16進数UTF-8文字コードに変換して半角スペースと改行で区切る
const encoder= new TextEncoder() const string1 = "あいうえお" Array.from(string1).map(s => Array.from(encoder.encode(Array.from(s))).map(code => code.toString(16)).padStart(2, "0").join(" ")).join("\r\n") // "e3 81 82 // e3 81 84 // e3 81 86 // e3 81 88 // e3 81 8a"
備考
この投稿ではArray.from
関数の第2引数mapFn
を使用していますが、Array.from(...).map(mapFn)
と記載しても同様の結果が得られます。