タグ

関連タグで絞り込む (2)

タグの絞り込みを解除

charsetに関するkarronoliのブックマーク (2)

  • MySQLで4バイトのUTF-8文字を扱ってみる - HHeLiBeXの日記 正道編

    JIS X 0213:2004で追加された「叱」の異体字は、Unicodeにおいては「UTF-8で符号化すると4バイトになる」コードが割り当てられている。また、中国語をまともに扱おうと思ったら「UTF-8で4バイト」の文字を扱う必要が出てくる。 そんな文字どもをMySQLデータベースに放り込もうと、UTF-8指定でがんばっていたのだが、ひとつの結論に行き着いたらしい。 MySQLの"UTF-8"にご用心 - yanok.netUTF-8で4バイト」の文字を扱おうと思ったら、MySQL 5.5.3以降を使い、さらに"utf8mb4"を指定せよ、という冗談のような当の話。 まぁグダグダ言っても始まらないので、まずは手元にある環境で試してみるところから。 事前準備 環境として、以下のものを使用する。 OS Windows Vista Business SP2 (x86) PHP v5.3.

    MySQLで4バイトのUTF-8文字を扱ってみる - HHeLiBeXの日記 正道編
    karronoli
    karronoli 2013/05/19
    utf8mb4というのがあるらしい.既存の文字コード指定の挙動を変えない理由があるのか…?
  • UTF-8 エンコーディングの危険性 - WebOS Goodies

    的に、まともな国際化ライブラリを使っていれば、上記のような不正な文字コードはきちんと処理してくれるはずです。実際、 Opera, Firefox, IE ともに適切にエスケープしてくれました。また、 UCS に変換した後にエスケープ処理を行うことでも対処できるかもしれません。しかし、複数のモジュールで構成されるような規模の大きいアプリケーションでは、そのすべてが適切な処理を行っていると保証するのも、なかなか難しいかと思います。ここはやはり、すべての外部入力に含まれる不正なシーケンスを、水際で正規化するという処理を徹底するのが一番かと思います。 例えば Ruby の場合、不正な UTF-8 コードを検出する最も簡単な方法は、 String#unpack を使って UCS へ変換してみることです(昨日の記事への kazutanaka さんからのはてぶコメントにて、 iconv でも同様なこ

    karronoli
    karronoli 2013/01/06
    "UTF-8の非最小形式の問題"って呼ぶの? なるほど,な問題だ.perlのdecode_utf8のCHECK=1で確認したらutf8 "\xC0" does not map to Unicodeってなった./正規化ってNFCとか関係じゃなくてバイト列を一意に扱うって話?
  • 1