2010年1月 8日

[mysql 15133] Re: [mysql 15131] utf8文字化け(森鴎外)

こんにちは


森鴎外の「鴎」の字体は、Unicodeにおける「サロゲート・ペア」に該当します。

これを表現するためには、UTF-8が4バイトである必要があります。しかしながら
MySQL5のutf8は3バイトまでしか対応していません。実質、CESU-8と言っても
良さそうです。


UTF-8の4バイト対応は、MySQL6.0.4以降になります。


Pushed to 6.0.4 on Nov 27/2007.

Handle the rare characters which are outside the
Unicode Basic Multilingual Plane (BMP). We will
need to extend what we can do with the existing
ucs2 and utf8 character sets, or add new Unicode
character sets. We'll need up to four bytes per
character.

There will be UCS4 and full UTF8 support.
There will be UTF16 support.

WL#1213: Implement 4-byte UTF8, UTF16 and UTF32
http://forge.mysql.com/worklog/task.php?id=1213

その辺りの議論については、下記のサイトが詳しいです。


@檸檬の家 MySQL 6.0 の Unicode 4バイト対応と新常用漢字
http://blog.motoyuki.net/2009/01/mysql_60_unicod_c771.html


-----------------------------------------------------------
荒浪 一城(Kazuki Aranami)

Twitter: http://twitter.com/kimtea
Email: kazuki.aranami@xxxxx
http://d.hatena.ne.jp/kazuki-aranami/
-----------------------------------------------------------

2010年1月8日11:44 戸田峻 <todappi@xxxxx>:
> 戸田と申します。
> 長々と記載して申し訳ありません。
>
> 現在一部のutf8の漢字が文字化けが発生してしまい解決が出来ません。
>
> 下記私の設定情報、現在の状態です。
>
> ・環境
> ?Microsoft Windouws XP
> ?MySQL5.1
>
> ・DBの文字コードの設定情報(下記コマンド実行)
> ?show variables like 'character_set%'
>
> ?結果
> ?character_set_client ? ? | utf8
> ?character_set_connection | utf8
> ?character_set_database ? | utf8
> ?character_set_filesystem | binary
> ?character_set_results ? ?| utf8
> ?character_set_server ? ? | utf8
> ?character_set_system ? ? | utf8
> ?character_sets_dir ? ? ? | C:\Program Files\MySQL\MySQL Server
> 5.1\share\charsets\
>
>
> ・入力したデータ(入力した方法)
> ?utf8での漢字データの入力
> ?-varchar(10)属性に下記データ入力
> ?aaa
> ?常用漢字
> ?森鴎外(※鴎:おう 実際は旧漢字を入力してます)
>
>
> ?方法
> ?-秀丸エディタにて文字コードをutf8に設定
> ?-簡単なinsert文を記述し(データに漢字を入力)、.sql拡張子で保存
> ?-コマンドプロントにてsourceコマンドを使用し上記作成ファイルを実行
> ?-結果は「Query OK, 0 rows affected (0.00 sec)」
>
> ・入力されたデータの確認(※この時点で文字化け発生)
> ?CSEで確認(CSE:sql開発ツール)
>
> ?-ODBCコネクタでutf8→sjisに変換(自動的にしてくれる)
> ?-CSEにてselectクリエ実行
> ?-出力されたデータ
> ? aaa
> ? 常用漢字
> ? 森?外(※旧漢字の鴎が?に文字化け)
>
> ?コマンドプロントで確認
> ?レジストリを弄り、utf8でMSゴシックを使用できるよう設定
> ?-レジストリエディタでCodePageとTrueTypeFontで65001を追加
> ?-コマンドプロントを開き、chcp 65001コマンドを実行(コマンドプロントをsjis→utf8に変換)
> ?-以下データベースに接続、select文実行
> ?-下記結果内容が出力される
> ?入力されているはずのデータ
> ? aaa
> ? 常用漢字
> ? 森鴎外(※鴎:おう 実際は旧漢字を入力してます)
>
> ?結果
> ? aaa
> ? 常用漢字
> ? 森?外(※旧漢字の鴎が?に文字化け)
>
>
> Windouws上でどうutf8の漢字データを入力して、どう確認していいのかが不明です。
> 何かご指摘があればお願いします。
>
> 以上、よろしくお願いします。
>
>

投稿者 xml-rpc : 2010年1月 8日 12:18
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/92145
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。