Intro textarea などに入力された文字数を、 JS で数えたい場合がある。 ここで .length を数えるだけではダメな理由は、文字コードや JS の内部表現の話を理解する必要がある。 多言語や絵文字対応なども踏まえた上で、どう処理するべきなのか。 それ自体は枯れた話題ではあるが、近年 ECMAScript に追加された機能などを交えて解説する。 なお、文字コードの仕組みを詳解すること自体が目的では無いため、 BOM, UCS-2, Endian, 歴史的経緯など、この手の話題につき物な話の一部は省くこととする。 1 文字とは何か Unicode は全ての文字に ID を振ることを目的としている。 例えば 😭 (loudly crying face) なら 0x1F62D だ。 1 つの文字に 1 つの ID が割り当てられているのだから、文字の数を数える場合は、この ID
JIS X 0208のシフトJISとUnicodeとの変換の問題として、CP932 (Windows-31J)の問題はよく知られています。書籍『プログラマのための文字コード技術入門』にも記しました。Windowsに実装されているUnicodeへの変換表が、標準の定義とずれている問題です。 この問題は、使用頻度の高さから、波ダッシュ「〜」(1面1区33点、SJIS 8160)が化け る問題としてよく知られています。 しかし、波ダッシュ以外にも大きな影響を受けている文字(記号)があります。 双柱「‖」1面1区34点 (SJIS 8161)は、垂直線が2本並んだ格好をしている記号です。文字名はDOUBLE VERTICAL LINEといいます。Unicodeで対応する符号位置はU+2016です。この記号はCP932変換表の影響を受けています。CP932変換表では、U+2016でなく平行記号 (P
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く