java中如何判断一个字符是否是GB2312

发布于 2024-09-30 06:13:27 字数 125 浏览 7 评论 0原文

我想写一个java函数,例如: 如果有一个字符不在 GB2312 中,则返回 false

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

I would like write a java function like:
if one char is not in GB2312, return false

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

何必那么矫情 2024-10-07 06:13:28

我已经有一段时间没有使用Java了,但是我知道Iconv,当存在非法字符时它会抛出异常,因此当捕获异常时可以返回false,当转换为UTF-8时返回true没有问题。

I haven't used Java for a while, but I know of Iconv, which can throw an exception when there is illegal character, so you can return false when an exception is caught, and return true when the conversion to UTF-8 went through without problem.

靑春怀旧 2024-10-07 06:13:27
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);
}
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("ダチヂッツヅテデ")); 
 }

}

UPDATE:
As a static method:

final static boolean isGB2312(final String s)
{
return java.nio.charset.Charset.forName("GB2312").newEncoder().canEncode(s);
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文