タグ

ブックマーク / blog.unfindable.net (3)

  • Unicode文字列の正規化(Javaの場合) | 配電盤

    いわゆる半角カナを使うと目くじらを立てて怒る人がいたのも今は昔。Unicodeのおかげで、半角カナはふつうの文字になりました。とはいえ、情報を流通させるという観点から言うと、「ページ」と「ページ」、「㌻」が混在しているのは好ましいことではありません(濁点・半濁点も文字として登録されているので、バリエーションはもっと多いです)。 めんどくさそうな問題ですが、Unicodeには正規化という仕掛けが用意してあるので、実は簡単に解決できます(正規化すると、同じものとして扱えます)。 その方法を、「PHPにおけるUnicode文字列の正規化」という記事で解説しました。PHPは単なる例であって、他の言語でも簡単です。ここでは、Javaの場合を紹介しましょう(1.6以降限定です)。.NETの人はString.Normalizeメソッドをどうぞ。 正規化には、クラスjava.text.Normaliz

    Unicode文字列の正規化(Javaの場合) | 配電盤
  • Twitter時代の文字の数え方 | 配電盤

    入力「×」のブラウザでは、「𠮷」が2文字とみなされるため、2文字目まで、つまり「𠮷野」までしか入力できません。 Mozillaの文書には、Unicode code pointsで数えると書いてあるので、そのうち改善されるのかもしれませんが、現時点ではTwitterのために「maxlength="140"」を使うことはできません。 pattern属性 Firefox 21とChrome 27、IE 10、Opera 12.15は、「pattern=".{0,3}"」(任意の文字からなる0から3文字)のような正規表現を使った検証にも対応していますが、やはり「𠮷野家」は4文字とみなされてしまいます。 JavaScript 追記:javascript – でBMP以外のUnicode文字をきちんと扱う(404 Blog Not Found) JavaScriptでは、文字列strの長さをst

  • JSONに関しては、例えば、PHPを避ける | 配電盤

    ここで紹介している問題は、PHP 5.4で解決されました。 JavaScriptのための記法であるJSONですが、最近はさまざまなプログラミング言語でサポートされています。たとえば、PHP 5には、JSON文字列をオブジェクトに変換するための関数、json_decode()が用意されています。 <?php var_dump(json_decode('{"id":12345}')); &#91;/php&#93; <p>この実装はなかなか親切で、<a href="http://codepad.org/XT2fs3S5">実行結果</a>を見るとわかるように、データが数値なら、数値として取り出してくれます。</p> <p>しかし、最近ではTwitterのつぶやきのIDがintの範囲を超えたりしているので、ちょっと不安です。下の例では、$idaと$idbの値は異なることが期待されますが、<a h

    JSONに関しては、例えば、PHPを避ける | 配電盤
  • 1