タマニチェンコさんのブログ
ブログ
MySQLの0x5c問題
MySQLでShift_JIS(CP932?)を使うと、0x5c問題にぶつかります。
0x5c問題とは、「2byteコードの中に'\'を示す0x5cコードが含まれるために、問題を起こす」という日本人特有のショボイ障害です。
そんで、MySQLの場合、どうやら0x5cに対応しているらしく、「文字列の最後の一文字」以外は、0x5c文字を使っても問題ないみたいです。しかし、最後の一文字に0x5cを使うとその次の'(シングルクォート)をエスケープしてしまうらしく、sytaxエラーが発生します。
これが、MySQLのShift_JIS対応と微妙に競合するらしく、'表示\'や'表示\\'などといろいろ試してみても一向に突破できません。結局「文字列の最後の1文字が0x5cだったらスペース(0x20)を付加する」という、どう考えてもへぼいロジックで回避してみました。
ちなみに、0x5cを含む文字は以下の通り。
―, ソ, Ы, 噂, 浬, 欺, 圭, 構, 蚕, 十, 申, 曾, 箪, 貼, 能, 表, 暴, 予, 禄, 兔, 喀, 媾, 彌, 拿, 杤, 歃, 濬, 畚, 秉, 綵, 臀, 藹, 觸, 軆, 鐔, 饅, 鷭
コメントを書く
コメントを投稿するには、ログイン(無料会員登録)が必要です。