mysql:13822
From: とみたまさひろ <とみたまさひろ <tommy@xxxxxxxxxx>>
Date: Sun, 25 Mar 2007 23:45:17 +0900
Subject: [mysql 13822] Re: UTF8 問題
とみたです。 On Sat, 24 Mar 2007 23:37:34 +0900 MORIYAMA Masayuki <msyk@xxxxxxxxxx> wrote: > >> OSC2007 の松信さんのプレゼンを聞いていないので、話が掴めていません。 > > > > プレゼン中で 4バイト UTF-8 への対応として、現状の utf8 は最大3バイトの > > ままにしておき、最大4バイトを扱えるものをたとえば utf8_4 というような > > 名前で導入する…という話がありました。 ちょっと誤解を招く書き方だったかもしれません。 決定ではなく、「utf8_4 という名前で導入する方法もあるかもしれない」く らいの意味合いだったと思います。 > なるほど、ありがとうございます。 > 従来の utf8 は、正しく実装されていなかったのだけれども、互換性維持の為に > に、従来の実装を残して正しい UTF-8 を utf8_4 として実装するという事です > ね。(MySQL の utf8 は、CESU-8 だったという事) > たとえば、次のような感じになる。 > > mysql> select hex(convert(_utf8 0xEDA080EDB080 using utf8)); > +-----------------------------------------------+ > | hex(convert(_utf8 0xEDA080EDB080 using utf8)) | > +-----------------------------------------------+ > | EDA080EDB080 | > +-----------------------------------------------+ > > mysql> select hex(convert(_utf8 0xEDA080EDB080 using utf8_4)); > +-------------------------------------------------+ > | hex(convert(_utf8 0xEDA080EDB080 using utf8_4)) | > +-------------------------------------------------+ > | F0908080 | > +-------------------------------------------------+ > > mysql> select hex(convert(_utf8_4 0xF0908080 using utf8)); > +---------------------------------------------+ > | hex(convert(_utf8_4 0xF0908080 using utf8)) | > +---------------------------------------------+ > | EDA080EDB080 | > +---------------------------------------------+ ん〜、従来のは CESU-8 なんでしょうかね…。 サロゲートペアを意識して変換してくれるかというと、そこまでは実装されな いような気がするので、単に3バイト以下に制限された UTF-8 ということだと 思います。 -- とみたまさひろ <tommy@xxxxxxxxxx> 日本MySQLユーザ会 http://www.mysql.gr.jp
13812 2007-03-22 09:08 ["Hiro Yoshioka" <hyo] UTF8 問題 13813 2007-03-22 20:02 ┗[MORIYAMA Masayuki <m] 13819 2007-03-24 05:55 ┗[とみたまさひろ <tomm] 13820 2007-03-24 09:55 ┣["TAKAHASHI, Tomohiro] 13821 2007-03-24 23:37 ┗[MORIYAMA Masayuki <m] -> 13822 2007-03-25 23:45 ┗[とみたまさひろ <tomm]