2013年12月16日月曜日

制御文字、ascii文字のテスト

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 件のコメント:

コメントを投稿