いわゆる半角カナを使うと目くじらを立てて怒る人がいたのも今は昔。Unicodeのおかげで、半角カナはふつうの文字になりました。とはいえ、情報を流通させるという観点から言うと、「ページ」と「ページ」、「㌻」が混在しているのは好ましいことではありません(濁点・半濁点も文字として登録されているので、バリエーションはもっと多いです)。 めんどくさそうな問題ですが、Unicodeには正規化という仕掛けが用意してあるので、実は簡単に解決できます(正規化すると、同じものとして扱えます)。 その方法を、「PHPにおけるUnicode文字列の正規化」という記事で解説しました。PHPは単なる例であって、他の言語でも簡単です。ここでは、Javaの場合を紹介しましょう(1.6以降限定です)。.NETの人はString.Normalizeメソッドをどうぞ。 正規化には、クラスjava.text.Normaliz
独自に定義した文字集合を削除または置換する場合もある。いずれにしても、あらゆる文字列操作は検査前に行わなければならない。 違反コード (非文字コードポイント) Unicode 5.2 より前のいくつかのバージョンでは、適合性条件 C7 において、非文字コードポイント (noncharacter code points) を削除することを認めている。たとえば、Unicode 5.1 の適合性条件 C7 には以下のように記述されている [Unicode 2007]。 C7. 有効 (valid) な文字列の解釈を変えないようにするためには、プロセスは正準等価な文字列への変換および非文字コードポイントの削除以外の変換を行ってはならない。 Unicode Technical Report #36「Unicode Security Considerations」のセクション3.5「コードポイントの削
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く