`
xinklabi
  • 浏览: 1587988 次
  • 性别: Icon_minigender_1
  • 来自: 吉林
文章分类
社区版块
存档分类
最新评论

Java中判断字符编码及转码

    博客分类:
  • Java
阅读更多
Java代码 复制代码
  1. java中判断字符编码以及转码   
  2. [参考]判断字符编码以及转码的一个工具类   
  3. http://hi.baidu.com/pazhu/blog/item/efcce7a2034ae9a8caefd05b.html   
  4. 2008-07-01 08:55  
  5.   
  6. /**  
  7. * Date: 2008-6-27  
  8. * <p>Copyright: Copyright (c) 2006</p>  
  9. *  
  10. * @version 1.0  
  11. * @author: SRH  
  12. */  
  13. public class TranCharset {   
  14.   
  15.     private static final String PRE_FIX_UTF = "&#x";   
  16.     private static final String POS_FIX_UTF = ";";   
  17.   
  18.     public TranCharset() {   
  19.     }   
  20.   
  21.     /**  
  22.      * Translate   charset   encoding   to   unicode  
  23.      *  
  24.      * @param sTemp charset   encoding   is   gb2312  
  25.      * @return charset   encoding   is   unicode  
  26.      */  
  27.     public static String XmlFormalize(String sTemp) {   
  28.         StringBuffer sb = new StringBuffer();   
  29.   
  30.         if (sTemp == null || sTemp.equals("")) {   
  31.             return "";   
  32.         }   
  33.         String s = TranCharset.TranEncodeTOGB(sTemp);   
  34.         for (int i = 0; i < s.length(); i++) {   
  35.             char cChar = s.charAt(i);   
  36.             if (TranCharset.isGB2312(cChar)) {   
  37.                 sb.append(PRE_FIX_UTF);   
  38.                 sb.append(Integer.toHexString(cChar));   
  39.                 sb.append(POS_FIX_UTF);   
  40.             } else {   
  41.                 switch ((int) cChar) {   
  42.                     case 32:   
  43.                         sb.append("&#32;");   
  44.                         break;   
  45.                     case 34:   
  46.                         sb.append("&quot;");   
  47.                         break;   
  48.                     case 38:   
  49.                         sb.append("&amp;");   
  50.                         break;   
  51.                     case 60:   
  52.                         sb.append("&lt;");   
  53.                         break;   
  54.                     case 62:   
  55.                         sb.append("&gt;");   
  56.                         break;   
  57.                     default:   
  58.                         sb.append(cChar);   
  59.                 }   
  60.             }   
  61.         }   
  62.         return sb.toString();   
  63.     }   
  64.   
  65.     /**  
  66.      * 将字符串编码格式转成GB2312  
  67.      *  
  68.      * @param str  
  69.      * @return  
  70.      */  
  71.     public static String TranEncodeTOGB(String str) {   
  72.         try {   
  73.             String strEncode = TranCharset.getEncoding(str);   
  74.             String temp = new String(str.getBytes(strEncode), "GB2312");   
  75.             return temp;   
  76.         } catch (java.io.IOException ex) {   
  77.   
  78.             return null;   
  79.         }   
  80.     }   
  81.   
  82.     /**  
  83.      * 判断输入字符是否为gb2312的编码格式  
  84.      *  
  85.      * @param c 输入字符  
  86.      * @return 如果是gb2312返回真,否则返回假  
  87.      */  
  88.     public static boolean isGB2312(char c) {   
  89.         Character ch = new Character(c);   
  90.         String sCh = ch.toString();   
  91.         try {   
  92.             byte[]   bb = sCh.getBytes("gb2312");   
  93.             if (bb.length > 1) {   
  94.                 return true;   
  95.             }   
  96.         } catch (java.io.UnsupportedEncodingException ex) {   
  97.             return false;   
  98.         }   
  99.         return false;   
  100.     }   
  101.   
  102.     /**  
  103.      * 判断字符串的编码  
  104.      *  
  105.      * @param str  
  106.      * @return  
  107.      */  
  108.     public static String getEncoding(String str) {   
  109.         String encode = "GB2312";   
  110.         try {   
  111.             if (str.equals(new String(str.getBytes(encode), encode))) {   
  112.                 String s = encode;   
  113.                 return s;   
  114.             }   
  115.         } catch (Exception exception) {   
  116.         }   
  117.         encode = "ISO-8859-1";   
  118.         try {   
  119.             if (str.equals(new String(str.getBytes(encode), encode))) {   
  120.                 String s1 = encode;   
  121.                 return s1;   
  122.             }   
  123.         } catch (Exception exception1) {   
  124.         }   
  125.         encode = "UTF-8";   
  126.         try {   
  127.             if (str.equals(new String(str.getBytes(encode), encode))) {   
  128.                 String s2 = encode;   
  129.                 return s2;   
  130.             }   
  131.         } catch (Exception exception2) {   
  132.         }   
  133.         encode = "GBK";   
  134.         try {   
  135.             if (str.equals(new String(str.getBytes(encode), encode))) {   
  136.                 String s3 = encode;   
  137.                 return s3;   
  138.             }   
  139.         } catch (Exception exception3) {   
  140.         }   
  141.         return "";   
  142.     }   
  143. }  
分享到:
评论

相关推荐

    java字符串编码转换

    在Java中,字符串的处理是非常常见的操作之一,而字符编码是确保数据正确显示的关键因素。本篇文章将重点介绍Java中字符串编码的转换方法及其在Web环境中的应用。 #### 二、Java中的字符串与字符编码 在Java中,`...

    前后台字符集转码.txt

    根据提供的文件信息,本文将详细解析前后台字符集转码的相关知识点,包括字符集的基本概念、前后端如何处理字符集转码以及示例代码中的具体实现。 ### 字符集的基本概念 在计算机科学中,字符集(Character Set)...

    关于JAVA字符编码:Unicode,ISO-8859-1,GBK,UTF-8编码及相互转换

    ### 关于JAVA字符编码:Unicode, ISO-8859-1, GBK, UTF-8 编码及相互转换 在Java开发过程中,字符编码是处理文本数据的基础,不同的编码方式会影响数据的存储、传输以及显示。本文将详细介绍几种常见的字符编码...

    解决android读取中文乱码 自动判断文档类型并转码

    在 Java 中,我们可以使用 BufferedInputStream 和 BufferedReader 来读取文件,并通过判断文件的前三个字节来确定文件的编码格式。常见的编码格式有 UTF-8、Unicode、UTF-16BE 和 UTF-16LE 等。 在上面的代码中,...

    java 写的字符编码转换工具(附带源码)

    Java字符编码转换工具是编程中常见的一种实用程序,主要用于处理不同字符编码间的转换问题。在计算机世界里,字符编码是用来表示文本的各种方式,常见的有ASCII、GBK、UTF-8等。不同的编码方式适用于不同的场景,...

    java读写excel包括utf8转码为可识别汉字gbk

    java读写excel包括utf8转码为可识别汉字gbk,jxl方式读取excel,生成一个新的excel

    java转码

    在Java编程语言中,"转码"通常指的是字符编码转换,这是处理文本数据时非常重要的一个环节。字符编码决定了字符如何在计算机内部表示,常见的编码有ASCII、GBK、UTF-8等。不同的编码格式适用于不同的场景,因此在...

    ascii编码转码工具

    在IT行业中,字符编码是一个非常重要的概念,尤其是在处理多语言和跨平台的系统时。ASCII编码是最早且最基础的字符编码系统之一,它只包含了128个基本的拉丁字母、数字、标点符号和控制字符。然而,随着全球化的推进...

    将字符串中的中文做UNICODE转码,非中文忽略

    将字符串中的中文做UNICODE转码,非中文忽略 简单实用 封装好了 直接用即可

    Java 程序转码(UTF-8)

    在Java中,可以通过多种方式实现字符编码转换,其中最常见的方法是使用`java.nio.charset.StandardCharsets`类和`new String(byte[], Charset)`构造函数。此外,还可以使用`java.net.URLDecoder`和`java.net....

    java转码工具

    Java转码工具是一种基于Java语言开发的实用程序,主要用于处理字符编码问题,特别是将文本文件在GB2312和UTF-8编码格式之间进行转换。在计算机领域,字符编码是决定如何用二进制数据表示字符的标准,不同的编码方式...

    jvm字符转码

    4. **国际化(Internationalization)**:为了支持多语言环境,Java提供了`java.nio.charset`包,其中包含了各种字符编码类,如`Charset`, `CharsetDecoder`和`CharsetEncoder`,方便进行字符转码操作。 5. **异常...

    java的api中文转码示例

    在Java编程中,处理中文字符编码是一个常见的任务,特别是在与URL交互、文件读写或网络通信等场景。本文将深入探讨如何使用Java API进行中文转码,以方便URL传参和其他应用。 首先,中文字符在计算机中存储时通常...

    使用 Java 对 Linux 下文件编码格式进行批量转换源代码

    打开 /home/defonds/tmp/test2 文件夹,发现有新文件 test0.java,test1.java,test2.java 生成,查看其编码格式,是为 UTF-8,证明转码成功。 4。使用本工具可以对 Linux 下文件的字符集编码格式进行批量转换。只需...

    java转码代码

    在Java编程语言中,"转码"通常是指在不同字符编码之间进行转换的过程,以解决乱码问题。乱码是由于文件或数据流在处理时使用了错误的字符集导致的。在这个场景下,"java转码代码"指的是用于解决Java程序中遇到的乱码...

    中文转换成NCR编码

    在IT领域,尤其是在处理网页和富文本内容时,字符编码是一个至关重要的概念。...在编程实践中,我们应当养成良好的编码习惯,注意字符编码的选择和转换,以便在各种环境和场景下都能得到理想的显示效果。

    java转码工具类

    在Java开发中,经常会遇到不同编码格式的文件处理问题,特别是在处理国际化应用时,字符集的兼容性尤为重要。本篇文章介绍了一个Java批量转换文件编码的工具类——`FileUtilsExt`,它能够帮助开发者轻松实现文件编码...

    URL编码转码工具

    这是一个URL编码转码工具,具体的功能和演示不发了。 实际功能是把网址转换为%hex 的形式。 1. 这个曾经是安全领域涉及到SQL注入破解屏蔽字符串的方法之一,但是现在已经很少用了 2. 这曾经是入侵大型网站(特别是...

    获取文件编码格式与文件转码

    - **使用内置API**:在Java和Android中,`java.nio.charset.Charset`类提供了编码和解码功能,可以通过`new String(byte[], charset)`和`String.getBytes(charset)`方法实现文件内容的转码。 - **流操作**:使用`...

    Java Emoji Converter表情转换工具

    在Java编程语言中,处理Emoji可能会涉及到Unicode编码、字体映射以及平台特定的实现。Java Emoji Converter提供了一个统一的接口,允许开发者将一个格式的Emoji字符串转化为另一种格式,确保在各种环境中都能正确...

Global site tag (gtag.js) - Google Analytics