テキストをDBに登録する際に、EUCとUTF-8のテキストを混在させてしまいました。
EUCではない文字列を判定するのにrubyで以下のようにチェックしました。
str =~ /^(?:[x20-x7E]|[xA1-xFE][xA1-xFE])*$/ ? true : false
str =~ /^(?:[x20-x7E]|[xA1-xFE][xA1-xFE])*$/ ? true : false
1バイト目 | 2バイト目 | 3バイト目 | |
ASCII | 0x20-0x7E | ||
漢字 | 0xA1-0xFE | 0xA1-0xFE | |
半角カナ | 0x8E | 0xA1-0xDF | |
補助漢字 | 0x8F | 0xA1-0xFE | 0xA1-0xFE |