タグ

Unicodeに関するsasaplus1のブックマーク (4)

  • 絵文字がある種のUnicodeバグを世界から一掃しつつある件について|Rui Ueyama

    UnicodeのUTF-16エンコーディングではほとんどの文字(コードポイント)は2バイトで表現されるが、Unicodeに後から追加収録された文字の多くは4バイトで表現される。4バイト文字がうまく扱えないプログラムというのはわりとよくある。しかし世界中で広く使われるようになった絵文字がよりによって4バイト文字であるせいで、そのような文字が扱えない問題がよいペースで解決に向かいつつある。それについて少し説明してみようと思う。 Unicodeが80年代から90年代初頭にかけてデザインされたときの目標の一つは、Unicodeに含まれる文字数を65536個以内に収めることだった。現代の文章を実用的なレベルで表すためには、漢字などを含めてもそれだけの種類の文字があれば十分だと考えられたのだ。当然これは1文字を2バイトで表すことを念頭に置いていた。つまりコンピュータの揺籃期から当時に至るまで単純に英語

    絵文字がある種のUnicodeバグを世界から一掃しつつある件について|Rui Ueyama
  • 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
  • Unicodeにあるハイフン/マイナス/長音符/波線/チルダのコレクション | hydroculのメモ

    Unicodeにあるハイフン/マイナス/長音符/波線/チルダのコレクション 2015/06/18 Unicodeにある文字の中からハイフンのような横棒と波線を集めてみました。複数あるのはわかっていたつもりでしたが、こんなにたくさんあるとは思いませんでした。 横線に関しては、ハイフンや長音符(カタカナの長音記号)、罫線など、線が横に延びているものです。縦方向や斜めの線は除きます。ほとんど横線だけどほんのちょっとだけ斜め(主観)になっているものは含みます。点線や矢印、線が2つ以上に分かれているものは除きます。途中で曲がっているものも除きます。横線が上の方だったり下の方だったり、太さが途中で変わるものも含めています。 波線に関しては、横方向の線が、直線ではなくS字カーブになっているもので、縦や斜めのS字を除きます。 S字カーブを超えて複雑な曲線も除いています。ただ、文字の名前に “wave” と

  • JavaScript Stringでサロゲートペアを扱う - teppeis blog

    JavaScriptで強力なUnicodeを扱う方法について書きます!(嘘) 先月末に発売されたWEB+DB PRESS Vol.78で「フロントエンドの国際化」の記事を書いたのは前回書いた通り。 WEB+DB PRESS Vol.78に「フロントエンドの国際化」について書いた! - teppeis blog 記事内で、JSの文字列は基UTF-16なのでサロゲートペアがうまく扱えないっていう問題は書いたけど、じゃあどうすればいいの?っていうのは載せられなかったので書く。 文字数のカウント 「𠮷(U+20BB7、つちよしだ)」や「𩸽(U+29E3D、ほっけ)」はUTF-16ではサロゲートペアで表現するのでlengthが見た目とズレる。 console.log("𠮷野家で𩸽".length); // 7 これを「5文字」とカウントしたいという話。 正規表現を使う方法 たぶん実装が一番

    JavaScript Stringでサロゲートペアを扱う - teppeis blog
  • 1