技术问题:java中如何判断字符串内容是否是一种编码格式
如果字符串的内容是一种编码格式,比如:Stringstr="GBK";或Stringstr="utf-8";则返回true如果字符串的内容不是编码格式(如Stringst...
如果字符串的内容是一种编码格式,比如:
String str = "GBK";
或
String str = "utf-8";
则返回true
如果字符串的内容不是编码格式(如String str = "srtergerg"; )则返回false 展开
String str = "GBK";
或
String str = "utf-8";
则返回true
如果字符串的内容不是编码格式(如String str = "srtergerg"; )则返回false 展开
3个回答
展开全部
可以看下java.nio.charset.Charset这个类,这个类里面有个静态方法:
public static boolean isSupported(String charsetName)通知是否支持指定的 charset。
参数:
charsetName - 请求的 charset 名称;可能是规范名称或别名
返回:
当且仅当当前 Java 虚拟机支持指定的 charset 时才返回 true
抛出:
IllegalCharsetNameException - 如果给定的 charset 名称是非法的
IllegalArgumentException - 如果给定的 charsetName 为 null
拿这个静态方法判断并捕捉异常,如果是true那就是正确的,否则就是false
public static boolean isSupported(String charsetName)通知是否支持指定的 charset。
参数:
charsetName - 请求的 charset 名称;可能是规范名称或别名
返回:
当且仅当当前 Java 虚拟机支持指定的 charset 时才返回 true
抛出:
IllegalCharsetNameException - 如果给定的 charset 名称是非法的
IllegalArgumentException - 如果给定的 charsetName 为 null
拿这个静态方法判断并捕捉异常,如果是true那就是正确的,否则就是false
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
直接用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
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
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
一般来说要对字符编码格式进行判断就是根据各种编码两个字节的起止范围作判断,如果符合起止范围就认为是某种字符编码。但理论上来说不同的字符编码有可能会采用同样的字节范围,所以这种方法并不能完全把某个双字节字符对应到唯一的一种编码格式上(所以说如果大家都用 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);
}
其他编码类似
大致判断方法:
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);
}
其他编码类似
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询