在页面得到一个String,如何知道他当前是哪种字符集?

解决方案 »

  1.   

    /**
     * 判断一个字符串中是否是汉字
     * 计算字符串长度. 一个汉字的长度按2计算. 如果给定的字符串为null, 返回0.
     * 
     * @param str
     *            待计算长度的字符串
     * @return 字符串长度
     */
    public static int strlen(String str) {
    if (str == null || str.length() <= 0) {
    return 0;
    }int len = 0;char c;
    for (int i = str.length() - 1; i >= 0; i--) {
    c = str.charAt(i);
    if ((c >= '0' && c <= '9') || (c >= 'a' && c <= 'z')
    || (c >= 'A' && c <= 'Z')) {
    //字母, 数字
    len++;
    } else {
    if (Character.isLetter(c)) { //中文
    len += 2;
    } else { //符号或控制字符
    len++;
    }
    }
    }
    return len;
    }
      

  2.   

    参考一下
    http://hedong.3322.org/archives/000361.html
      

  3.   

    “字符集”就是“字符”的“集合”。字面上讲,判断字符集,就是判断串中的这些字符在哪个集合当中。因此“jyy7751(wish i could fly)”兄 对楼主问题字面上的理解是正确的!不过这一点是不好判断的,因为一般字符都被包含于很多个字符集。
    所以,楼主可能跟很多人一样都想另问一个问题:“String是哪种那种编码?”
    但是“字符串的编码”这个概念本身是不正确的。只有在将“字符串 => 字节串”相互转化的时候才有编码的概念,字符串本身是没有编码的概念的,因为它只是一个“符号”的“串”。
    本人以前给公司同事培训的时候,写过一些非常易懂的说明,也许能够帮你澄清:
    “字节串”“字符串”“编码”
    这些等概念。http://www29.websamba.com/sswater/docs/coding.zipzip 文件中是一个 ppt,里面的内容看上去很少,但是那是一边看我一边给大家讲的,每一句话都可以展开来说的。因此,你需要对每一句话都要读仔细,你将能够对“字节”“字符”“编码”从此不再迷惑。