タグ

関連タグで絞り込む (1)

タグの絞り込みを解除

javascriptとunicodeに関するhush_inのブックマーク (2)

  • JavaScript における文字コードと「文字数」の数え方 | blog.jxck.io

    Intro textarea などに入力された文字数を、 JS で数えたい場合がある。 ここで .length を数えるだけではダメな理由は、文字コードや JS の内部表現の話を理解する必要がある。 多言語や絵文字対応なども踏まえた上で、どう処理するべきなのか。 それ自体は枯れた話題ではあるが、近年 ECMAScript に追加された機能などを交えて解説する。 なお、文字コードの仕組みを詳解すること自体が目的では無いため、 BOM, UCS-2, Endian, 歴史的経緯など、この手の話題につき物な話の一部は省くこととする。 1 文字とは何か Unicode は全ての文字に ID を振ることを目的としている。 例えば 😭 (loudly crying face) なら 0x1F62D だ。 1 つの文字に 1 つの ID が割り当てられているのだから、文字の数を数える場合は、この ID

    JavaScript における文字コードと「文字数」の数え方 | blog.jxck.io
  • なぜ絵文字を含む文字を1文字ずつに分けるのにArray.fromだけで十分なのか? - Qiita

    「Node.js で絵文字を使う時の注意点 - Qiita」にコメントしたのですが、大雑把すぎて説明になっていない気がするので、詳細に解説したいと思います。 TL;DR 絵文字のようなサロゲートペアを含む文字列をJavaScriptで扱おうとすると面倒。 ↑ s.length、s[0] とか s.split('') とかがおかしくなる。 1文字ずつに分割したいときは Array.from が使える。 なぜなら、Array.from は内部的に for of 文のようなことをしていて、文字列に対する for of はサロゲートペアを考慮するから。 問題点と解決まで 絵文字を含む文字、つまりUTF-16のサロゲートペアを含むような文字を一文字ずつに分割したい場合、JavaScriptでは問題が生じます。つまり、どういうことかというと、 const kira = 'キラッ🌠' // 見ため上は

    なぜ絵文字を含む文字を1文字ずつに分けるのにArray.fromだけで十分なのか? - Qiita
  • 1