[JavaScript] サロゲートペアの扱い方をわかりやすくメモっておく
- 2008-11-13
- カテゴリ: Client Side
- タグ: Tips JavaScript Unicode
先日、JavaScriptでサロゲートペアに対応した文字列関数を書いたりしてみたが、これだけだとサロゲートペアの扱い方を思い出すにはわかりづらいので、わかりやすくまとめ直してメモっておこうと思う。
前提知識
- サロゲートペアを使って表現できるコードポイントの範囲はU+10000-U+10FFFFだけ (だから、UnicodeはU+10FFFFまでしかコードポイントを割り当てない仕様になってる!)
- サロゲートコードポイントはU+D800-U+DFFFの2048個 (11ビット)
- 2048個を上位サロゲート (U+D800-U+DBFF) と下位サロゲート (U+DC00-U+DFFF) に分けて、上位サロゲートと下位サロゲートの組み合わせ (1024*1024) でU+10000-U+10FFFFの範囲を表現する
スポンサーサイト
[JavaScript] サロゲート・ペアに対応した文字列操作関数を書いてみた
- 2008-11-06
- カテゴリ: Client Side
- タグ: JavaScript 安易な発想 Unicode
JavaScriptの文字列型はUTF-16を採用しているから、サロゲートペアを使用した文字が混ざるといろいろと厄介だったりする。一例としては↓のような感じ。
var s = "𪚲"; // U+2A6B2 console.log(s.length); // 2 console.log(s.split("")); // ["", ""]
ということで、サロゲートペアの扱いを少し楽にする関数を書いてみたからとりあえず公開してみる。
[JavaScript]\uXXXX形式にunicodeエスケープする関数
- 2007-12-22
- カテゴリ: Client Side
- タグ: JavaScript Tips Unicode JSON
さっきはPerlにはまるとか言っておきながら結局JavaScript…
JavaScriptの文字列を、\uXXXXの形式のUnicodeEscapeSequenceにエスケープする関数を書きました。
JavaScriptの文字列をJSONとかでよく見かける、
\u672c\u65e5\u306f\u6674\u5929\u306a\u308a
の形式の文字列に変換する関数です。ソースやサンプルは続きで。