技术问题:java中如何判断字符串内容是否是一种编码格式

如果字符串的内容是一种编码格式,比如:Stringstr="GBK";或Stringstr="utf-8";则返回true如果字符串的内容不是编码格式(如Stringst... 如果字符串的内容是一种编码格式,比如:
String str = "GBK";

String str = "utf-8";
则返回true
如果字符串的内容不是编码格式(如String str = "srtergerg"; )则返回false
展开
 我来答
大漠小北
2010-09-28 · TA获得超过1138个赞
知道小有建树答主
回答量:365
采纳率:0%
帮助的人:461万
展开全部
可以看下java.nio.charset.Charset这个类,这个类里面有个静态方法:
public static boolean isSupported(String charsetName)通知是否支持指定的 charset。

参数:
charsetName - 请求的 charset 名称;可能是规范名称或别名
返回:
当且仅当当前 Java 虚拟机支持指定的 charset 时才返回 true
抛出:
IllegalCharsetNameException - 如果给定的 charset 名称是非法的
IllegalArgumentException - 如果给定的 charsetName 为 null

拿这个静态方法判断并捕捉异常,如果是true那就是正确的,否则就是false
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Jseven_jy
2010-09-28 · TA获得超过8122个赞
知道大有可为答主
回答量:2499
采纳率:100%
帮助的人:1141万
展开全部
直接用API提供的方法就可以哈。。

import java.nio.charset.Charset;

public class IsCharset {

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
String gbk = "gbk";
String utf8 = "utf-8";
String iso = "iso8859-1";
String gb2312 = "gb2312";
String str = "ds";
System.out.println(Charset.isSupported(gbk));
System.out.println(Charset.isSupported(utf8));
System.out.println(Charset.isSupported(str));
System.out.println(Charset.isSupported(iso));
System.out.println(Charset.isSupported(gb2312));
}

}

运行结果
true
true
false
true
true
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友5238b26
2010-09-28 · 超过21用户采纳过TA的回答
知道答主
回答量:107
采纳率:0%
帮助的人:49.6万
展开全部
一般来说要对字符编码格式进行判断就是根据各种编码两个字节的起止范围作判断,如果符合起止范围就认为是某种字符编码。但理论上来说不同的字符编码有可能会采用同样的字节范围,所以这种方法并不能完全把某个双字节字符对应到唯一的一种编码格式上(所以说如果大家都用 utf-8 ,整个世界就清静了)。
大致判断方法:
public static boolean isGBK( byte head,byte tail ){
int iHead = head & 0xff;
int iTail = tail & 0xff;
return ((iHead>=0x81 && iHead<=0xfe &&
(iTail>=0x40 && iTail<=0x7e ||
iTail>=0x80 && iTail<=0xfe)) ? true : false);
}
其他编码类似
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式