java Unicode和UTF-8之间转换实例

 更新时间:2020年09月24日 15:35:36   作者:韦邦杠  
这篇文章主要介绍了java Unicode和UTF-8之间转换实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

utf-8转unicode

 public static String utf8ToUnicode(String inStr) {
    char[] myBuffer = inStr.toCharArray();
    
    StringBuffer sb = new StringBuffer();
    for (int i = 0; i < inStr.length(); i++) {
     UnicodeBlock ub = UnicodeBlock.of(myBuffer[i]);
      if(ub == UnicodeBlock.BASIC_LATIN){
       //英文及数字等
       sb.append(myBuffer[i]);
      }else if(ub == UnicodeBlock.HALFWIDTH_AND_FULLWIDTH_FORMS){
       //全角半角字符
       int j = (int) myBuffer[i] - 65248;
       sb.append((char)j);
      }else{
       //汉字
       short s = (short) myBuffer[i];
        String hexS = Integer.toHexString(s);
        String unicode = "\\u"+hexS;
       sb.append(unicode.toLowerCase());
      }
    }
    return sb.toString();
  }

unicode转utf-8

public static String unicodeToUtf8(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 get请求带参数报错 java.io.IOException: Server returned HTTP response code: 400 for URL

解决方案

在使用JAVA发起http请求的时候,经常会遇到这个错误,我们copy请求地址在浏览器中运行的时候又是正常运行的,造成这个错误的原因主要是因为请求的URL中包含空格,这个时候我们要使用URLEncoder.encode(timestamp,"utf-8")对含有空格的参数进行处理;(注:只对需要处理的参数部分进行处理,不要把整个URL放进去,如果整个URL放进去会对URL中的"//"也会进行处理);

以上这篇java Unicode和UTF-8之间转换实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • maven 指定version不生效的问题

    maven 指定version不生效的问题

    这篇文章主要介绍了maven 指定version不生效的问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-01-01
  • Spring MVC 学习 之 - URL参数传递详解

    Spring MVC 学习 之 - URL参数传递详解

    本篇文章主要介绍了SpringMVC-URL参数传递,在学习 Spring Mvc 过程中,有必要来先了解几个关键参数,有兴趣的可以了解一下。
    2017-01-01
  • java使用HttpSession实现QQ访问记录

    java使用HttpSession实现QQ访问记录

    这篇文章主要介绍了java使用HttpSession实现QQ的访问记录的相关资料,需要的朋友可以参考下
    2016-03-03
  • 如何使用Spring Batch进行批处理任务管理

    如何使用Spring Batch进行批处理任务管理

    本文介绍了如何配置Spring Batch、如何创建批处理任务,以及如何读取和写入数据,希望通过本文的介绍,你能更好地理解和使用Spring Batch来管理批处理任务,感兴趣的朋友跟随小编一起看看吧
    2024-08-08
  • IDEA Project不显示/缺失文件问题及解决

    IDEA Project不显示/缺失文件问题及解决

    在侧边栏的project模式下,如果发现缺少部分文件,可以尝试关闭项目,打开项目所在目录,删除目录下的.idea文件夹,然后重新打开项目即可解决
    2024-11-11
  • 详解Java中Stream流的用法和原理

    详解Java中Stream流的用法和原理

    最近编码的时候用到了Stream这个东西,以前也用过,但是对它没有一个系统的认知,在好奇心的驱动下还是决定花一些时间去系统地学一学,不了解Stream的同学可以看看本文,对大家的学习和工作有一定的帮助
    2023-10-10
  • Spring下token过期时间分平台(web和app)设置方法

    Spring下token过期时间分平台(web和app)设置方法

    本文详细介绍了在Spring环境下,针对web端和APP端实现不同token过期时间的方法,通过整合SpringBoot、springSecurity和JWT框架,文章讲解了登录流程、JWT的基本组成以及token鉴权的核心步骤,需要的朋友可以参考下
    2024-10-10
  • Java中使用Filter过滤器的方法

    Java中使用Filter过滤器的方法

    Filter过滤器是javaWeb层面的,它跟Servlet类似,每次前端请求,首先进入的是过滤器,我们必须实现Filter接口,重写三个方法,才能使用Filter过滤器,需要的朋友可以参考下
    2021-06-06
  • SpringIntegration消息路由之Router的条件路由与过滤功能

    SpringIntegration消息路由之Router的条件路由与过滤功能

    本文详细介绍了Router的基础概念、条件路由实现、基于消息头的路由、动态路由与路由表、消息过滤与选择性路由以及错误处理与路由等方面的内容,提高了系统的可维护性和可扩展性,感兴趣的朋友一起看看吧
    2025-04-04
  • 两个小例子轻松搞懂 java 中递归与尾递归的优化操作

    两个小例子轻松搞懂 java 中递归与尾递归的优化操作

    这篇文章主要介绍了两个小例子轻松搞懂 java 中递归与尾递归的优化操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-09-09

最新评论