0x00-0x1Fの範囲および0x7Fはutf-8,shift_jis,asciiともに同じ制御文字を表す。
また0x20-0x7Eは同じascii文字を表す。
mysqlで
SHOW VARIABLES LIKE 'character\_set\_%';
した結果は以下。
+--------------------------+--------+
| Variable_name | Value |
+--------------------------+--------+
| 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 |
+--------------------------+--------+
各テーブルのカラムはutf-8であることが分かる。
IFについてはshift_jisだが0x00-0x7Fについては
utf-8、shift_jisともに同じ文字列なので
正常に処理されるかどうかの確認は0x00-0x7Fを直接挿入すればよい。
したがい下記のようなupdate文をmysqlに対して実施後、
IFをたたけばよい。
UPDATE <テーブル名> SET <フィールド名> = CAST(0x<HEXの値> AS BINARY) WHERE ~
以上です。
0 件のコメント:
コメントを投稿