Как узнать, является ли персонаж GB2312 в Java
Я хотел бы написать функцию Java, как: если один символ не в GB2312, вернуть false
Boolean isGB2312(String chinese) {
......
}
2 ответа
Решение
import java.nio.charset.*;
class Some{
public static void main(String args[])
{
final Charset cs = Charset.forName("GB2312");
final CharsetEncoder encode = cs.newEncoder();
System.out.println(encode.canEncode("ダチヂッツヅテデ"));
}
}
ОБНОВЛЕНИЕ: как статический метод:
final static boolean isGB2312(final String s)
{
return java.nio.charset.Charset.forName("GB2312").newEncoder().canEncode(s);
}
Некоторое время я не использовал Java, но я знаю о Iconv, который может генерировать исключение, когда есть недопустимый символ, поэтому вы можете возвращать false, если исключение обнаружено, и возвращать true, когда преобразование в UTF-8 прошло. без проблем.