java中unicode和中文相互转换的简单实现_java

如下所示:

package test.com.gjob.services;
  import java.util.Properties;
   public class Test {
      public static void main(String[] args) {
      String s = "简介";
      String tt = gbEncoding(s);
  //    String tt1 = "你好,我想给你说一个事情";
      System.out.println(decodeUnicode("\\u7b80\\u4ecb"));
  //    System.out.println(decodeUnicode(tt1));
      System.out.println(HTMLDecoder.decode("中国"));
      String s1 = "\u7b80\u4ecb";
      System.out.println(s.indexOf("\\"));
     }
     public static String gbEncoding(final String gbString) {
     char[] utfBytes = gbString.toCharArray();
        String unicodeBytes = "";
        for (int byteIndex = 0; byteIndex < utfBytes.length; byteIndex++) {
           String hexB = Integer.toHexString(utfBytes[byteIndex]);
            if (hexB.length() <= 2) {
              hexB = "00" + hexB;
           }
            unicodeBytes = unicodeBytes + "\\u" + hexB;
          }
          System.out.println("unicodeBytes is: " + unicodeBytes);
          return unicodeBytes;
       } 

       public static String decodeUnicode(final String dataStr) {
        int start = 0;
         int end = 0;
         final StringBuffer buffer = new StringBuffer();
         while (start > -1) {
           end = dataStr.indexOf("\\u", start + 2);
           String charStr = "";
           if (end == -1) {
             charStr = dataStr.substring(start + 2, dataStr.length());
           } else {
             charStr = dataStr.substring(start + 2, end);
           }
           char letter = (char) Integer.parseInt(charStr, 16); // 16进制parse整形字符串。
          buffer.append(new Character(letter).toString());
          start = end;
         }
         return buffer.toString();
       }
     }
public static String decodeUnicode(String theString) {  

   char aChar;  

   int len = theString.length();  

   StringBuffer outBuffer = new StringBuffer(len);  

   for (int x = 0; x < len;) {  

   aChar = theString.charAt(x++);  

   if (aChar == '\\') {  

    aChar = theString.charAt(x++);  

    if (aChar == 'u') {  

    // Read the xxxx  

    int value = 0;  

    for (int i = 0; i < 4; i++) {  

     aChar = theString.charAt(x++);  

     switch (aChar) {  

     case '0':  

     case '1':  

     case '2':  

     case '3':  

    case '4':  

     case '5':  

     case '6':
      case '7':
      case '8':
      case '9':
      value = (value << 4) + aChar - '0';
      break;
      case 'a':
      case 'b':
      case 'c':
      case 'd':
      case 'e':
      case 'f':
      value = (value << 4) + 10 + aChar - 'a';
      break;
      case 'A':
      case 'B':
      case 'C':
      case 'D':
      case 'E':
      case 'F':
      value = (value << 4) + 10 + aChar - 'A';
      break;
      default:
      throw new IllegalArgumentException(
       "Malformed  \\uxxxx  encoding.");
      }  

     }
     outBuffer.append((char) value);
     } else {
     if (aChar == 't')
      aChar = '\t';
     else if (aChar == 'r')
      aChar = '\r';  

     else if (aChar == 'n')  

      aChar = '\n';  

     else if (aChar == 'f')  

      aChar = '\f';  

     outBuffer.append(aChar);  

     }  

    } else  

    outBuffer.append(aChar);  

    }  

    return outBuffer.toString();  

   }

以上这篇java中unicode和中文相互转换的简单实现就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索java
unicode转换中文
java实现unicode解码、java扫雷代码简单实现、java实现简单计算器、rsajava简单实现、java实现简单的记事本,以便于您获取更多的相关知识。

时间: 2024-09-30 10:47:11

java中unicode和中文相互转换的简单实现_java的相关文章

Java中获取类路径classpath的简单方法(推荐)_java

如下所示: <SPAN style="FONT-SIZE: 18px"> System.out.println("++++++++++++++++++++++++"); String path = System.getProperty("java.class.path"); String path2 = FreeMarkerWriter.class.getProtectionDomain().getCodeSource().getLo

Java中HttpServletResponse响应中文出现乱码问题_java

以字符串的形式输出. 1.response.getWriter().write("您好中国hello"); 如果这样输出的话.则浏览器结果为: 2.加上代码 response.setCharacterEncoding("UTF-8"); response.getWriter().write("您好中国hello"); 则浏览器结果为: 这是因为浏览器解析问题. 加上代码: response.setHeader("Content-type

Java中URL传中文时乱码的解决方法_java

前言 Java中URL传中文时乱码的问题相信不少朋友都遇到过,最近就遇到一个问题,就是在Action当中把一条中文信息绑定在URL的后面,ActionForward到别一个页面时,用reqeust.getParameter取出是出现乱码的问题. 解决办法 1.对要进行URL传递的中文字符进行编码: String message = java.net.URLEncoder.encode("中文字符","utf-8"); 2.在取URL传递中文的页面对字符进行解码: S

Java中List与数组相互转换实例分析_java

本文实例分析了Java中List与数组相互转换的方法.分享给大家供大家参考.具体如下: 今天写代码遇到一个奇怪的问题,具体代码不贴出了,写一个简化的版本.如下: ArrayList<String> list=new ArrayList<String>(); String strings[]=(String [])list.toArray(); 这样写代码个人觉得应该没什么问题,编译也没有问题.可是具体运行的时候报异常,如下:Exception in thread "mai

java反射_改变private中的变量及方法的简单实例_java

java反射_改变private中的变量及方法的简单实例 class DemoTest{ private String name="123"; public getName(){ system.out.println("public getName " + name); return name; } private getName2(){ system.out.println("private getName2 " + name); return

Java中的字符编码问题处理心得总结_java

当面对一串字节流的时候,如果不指定它的编码,其实际意义是无法知道的. 这句话应该也是我们面对"字符转字节,字节转字符"问题时候时刻记在脑子里的.否则乱码问题可能就接踵而至. 其实乱码问题的本质就是Encoding和Decoding用的不是一个编码,明白了这个道理就很好解决乱码问题了. Java中常见的时候有如下: 1. String类使用byte[]的构造函数 String(byte[] bytes),String类同时提供了两个重载 (1)String(byte[] bytes, C

Java中使用Preferences 的 API设置用户偏好_java

Preferences的中文意思即偏好或喜好的意思,也就是说同一个程序在每次运行完后,可以通过Preferences来记录用户的偏好,下次启动时,程序会利用这些信息来了解用户的喜好.而这些信息个人理解应该就是存储在系统的注册表中. 下面我们来学习一下Java中的Preferences的API; 概述: 本文将介绍自jdk1.4版本后可用的java的Preferences. Java的Preferences API提供系统的方法来处理用户和系统的偏好及数据配置, 例如.保存用户设置,记住一个文本框

Java中自然排序和比较器排序详解_java

前言 当指执行插入排序.希尔排序.归并排序等算法时,比较两个对象"大小"的比较操作.我们很容易理解整型的 i>j 这样的比较方式,但当我们对多个对象进行排序时,如何比较两个对象的"大小"呢?这样的比较 stu1 > stu2 显然是不可能通过编译的.为了解决如何比较两个对象大小的问题,JDK提供了两个接口 java.lang.Comparable 和 java.util.Comparator . 一.自然排序:java.lang.Comparable C

Java中BufferedReader与BufferedWriter类的使用示例_java

BufferedReaderBufferedReader 是缓冲字符输入流.它继承于Reader. BufferedReader 的作用是为其他字符输入流添加一些缓冲功能. 创建BufferReader时,我们会通过它的构造函数指定某个Reader为参数.BufferReader会将该Reader中的数据分批读取,每次读取一部分到缓冲中:操作完缓冲中的这部分数据之后,再从Reader中读取下一部分的数据. 为什么需要缓冲呢?原因很简单,效率问题!缓冲中的数据实际上是保存在内存中,而原始数据可能是