エンコードチェック
ブラウザ等で入力された文字列がシステムでエンコード可能かどうかチェックする処理
必要になったので調べてみました。
import java.nio.charset.Charset; import java.nio.charset.CharsetEncoder; /** * 文字列がエンコード可能かどうかチェックする * @param checkStr チェックする文字列 * @return true エンコード可能 false エンコードできない */ public boolean check(String checkStr) { // デフォルトの文字セット Charset cs = Charset.defaultCharset(); // 特定の文字セット この場合は、ISO-8859-1 //Charset cs = Charset.forName("ISO-8859-1"); char[] array = checkStr.getChar(); CharsetEncoder ce = cs.newEncoder(); for (int i=0; i<array.length; i++) { if (!ce.canEncode(array[i])) { return false; } } return true; }
こんな感じでしょうか。