タグ

unicodeに関するkjirouuのブックマーク (5)

  • JavaScript’s internal character encoding: UCS-2 or UTF-16? · Mathias Bynens

    Does JavaScript use UCS-2 or UTF-16 encoding? Since I couldn’t find a definitive answer to this question anywhere, I decided to look into it. The answer depends on what you’re referring to: the JavaScript engine, or JavaScript at the language level. Let’s start with the basics… The notorious BMP Unicode identifies characters by an unambiguous name and an integer number called its code point. For e

    kjirouu
    kjirouu 2017/12/09
    JSの文字コードが UCS-2 なのか UTF-16 なのか、サロゲートペアに対応してないのはなぜか、など
  • 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
    kjirouu
    kjirouu 2017/03/03
    サロゲートペア周りの決定版記事っぽい
  • Unicode一覧表

    Unicode(UTF-8)の文字コード表を出力します。区分名に「*」が付いているものは合成用文字です。 表示: 【使い方】 左肩の区分メニューをクリックすると、その区分にある文字を一覧表で表示します。 一覧表の文字やコード番号をクリックすることで、上記フォームに文字が入力表示されます。 様々な機器で見比べることでフォントの違いを比較することが出来ます。 ブラウザの設定や、OSに組み込まれたフォントの仕様によって表示される文字が異なります。 文字コードを調べたいときは、フォームに文字を入力し、検査ボタンを押してください。 コード表の右上にあるURLをクリックするとURLの後ろに#で始まるハッシュがつきます。そのURLをブックマークすることで、表示の区分を直接開くことが出来ます。 【ご注意】 全コードの出力はかなり大きな表となるため、ブラウザの動作が遅くなったり、動かなくなる場合があります。

    kjirouu
    kjirouu 2015/07/07
    文字列を入れると一文字ずつ変換してくれるので使いやすい
  • [JavaScript]\uXXXX形式にunicodeエスケープする関数 / LiosK-free Blog

    2007-12-22 カテゴリ: Client Side タグ: JavaScript Tips Unicode JSON さっきはPerlにはまるとか言っておきながら結局JavaScriptJavaScriptの文字列を、\uXXXXの形式のUnicodeEscapeSequenceにエスケープする関数を書きました。 JavaScriptの文字列をJSONとかでよく見かける、 \u672c\u65e5\u306f\u6674\u5929\u306a\u308a の形式の文字列に変換する関数です。ソースやサンプルは続きで。 ソース var unicodeEscape = function(str) { var code, pref = {1: '\\u000', 2: '\\u00', 3: '\\u0', 4: '\\u'}; return str.replace(/\W/g, fu

    kjirouu
    kjirouu 2012/01/14
    コンソール上で見たい場合は obj.toSource() か uneval({...}) で確認できる、無いブラウザもある
  • Unicode正規化

    正しい並び替えでは、表示は(A)のままですが、間違った並び替えでは、正規結合クラスが互いに等しいMACRONとACUTEを並び替えたため、表示は(B)のように、eの上のアクセント記号の位置が入れ替わってしまいます。 正規分解・互換分解 ある文字列の正規分解 (Canonical Decomposition) を得るには、まず、それぞれの文字を正規マッピングによって再帰的に、可能な限り、分解します。すなわち、1回分解した後に現れた文字がなおも分解可能であればさらに分解します。分解マッピングがその文字自身である場合は、分解不可能なので、そのままです。 しかし、分解しただけでは必ずしも正しい結果が得られません。つまり、結合文字の順序の一意性を保証するため、分解後の文字列に対して正規順序アルゴリズムを適用しなければなりません。このように、正規マッピングによる再帰的分解と、正規順序アルゴリズムによ

    kjirouu
    kjirouu 2010/10/15
    Unicodeの正規化に関して NFD / NFC / NFKD / NFKC の違いの解説。やや下の対応表を見るとわかる。大体 NFKC が便利なはず
  • 1