Как узнать, является ли персонаж GB2312 в Java - PullRequest
1 голос
/ 28 октября 2010

Я хотел бы написать java-функцию, например: если один символ отсутствует в GB2312, вернуть false

Boolean isGB2312(String chinese) {
    ......
}

Ответы [ 2 ]

3 голосов
/ 28 октября 2010
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);
}
0 голосов
/ 28 октября 2010

Я некоторое время не использовал Java, но я знаю о Iconv, который может генерировать исключение, когда есть недопустимый символ, поэтому вы можете возвращать false, когда исключение поймано, и возвращать true, когда преобразование в UTF-8 прошел без проблем.

...