タグ: Unicode

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

[JavaScript] サロゲートペアの扱い方をわかりやすくメモっておく

先日、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] サロゲート・ペアに対応した文字列操作関数を書いてみた

JavaScriptの文字列型はUTF-16を採用しているから、サロゲートペアを使用した文字が混ざるといろいろと厄介だったりする。一例としては↓のような感じ。

var s = "𪚲";                // U+2A6B2

console.log(s.length);       // 2
console.log(s.split(""));    // ["�", "�"]

ということで、サロゲートペアの扱いを少し楽にする関数を書いてみたからとりあえず公開してみる。

続きを読む

[JavaScript]\uXXXX形式にunicodeエスケープする関数

さっきはPerlにはまるとか言っておきながら結局JavaScript…

JavaScriptの文字列を、\uXXXXの形式のUnicodeEscapeSequenceにエスケープする関数を書きました。

JavaScriptの文字列をJSONとかでよく見かける、

\u672c\u65e5\u306f\u6674\u5929\u306a\u308a

の形式の文字列に変換する関数です。ソースやサンプルは続きで。

続きを読む

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。