タグ

JavaScriptとunicodeに関するsabroのブックマーク (2)

  • JavaScriptで全角/半角判定 — shibu.jp

    Note コンテンツの一部は、業務時間内に調べた内容を含んでおり、株式会社ディー・エヌ・エーの提供でお送りしております。 とある理由で全角、半角の判定が必要になったのですが、簡単技(SJISなどに変換してバイト数計測など)はつかえなかったため、自作する方向で調べて見ました。 Pythonには unicodedata.east_asian_width() という関数があり、 エキスパートPythonプログラミング というすばらしい書籍の日語オリジナルの文字コード関連の章によると、この関数が "F" 、 "W" 、 "A" (ただし、Aはフォントにより変わる曖昧な文字)が返すと全角としてカウントすればよい、と書かれています。 こちらを参考にJavaScriptの全角/半角判定を行った幅計算を実装してみます。 まずJavaScriptを知る¶ JavaScriptは内部では、UTF-16とい

  • Web系雑記: サロゲートペアをJavaScriptで検出する方法

    ちょっと調べる機会があったので。 まずサロゲートペアの性質について ・Unicode と UTF http://www.parof.jp/Programing/Unicode/ Unicode で「D800~DFFF」の範囲(これがサロゲート領域)にあるビット列がでてきたら、次の2バイトと合わせて1文字と認識しなさい、と定められています(逆に言うと、「D800~DFFF」はそれだけで表現される文字というのが定められていません)。そしてこの領域のうち「D800~DBFF」は4バイトのうち上位2バイトで使い、「DC00~DFFF」は下位2バイトで使われます。 JavaScriptのcharCodeAtメソッドでサロゲートペアの文字 一文字を調べると、charCodeAt(0)で上位サロゲートのコード、 charCodeAt(1)で下位サロゲートのコードが返ってきます。 (ちなみにlengthは

  • 1