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之间转换实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • intelij idea 2023创建java web项目的完整步骤

    intelij idea 2023创建java web项目的完整步骤

    这篇文章主要给大家介绍了关于intelij idea 2023创建java web项目的完整步骤,该教学主要针对各位刚刚接触javaweb开发的小伙伴,各位学习java的朋友也难免会经历这个阶段,需要的朋友可以参考下
    2023-10-10
  • Java中使用Jedis操作Redis的实现代码

    Java中使用Jedis操作Redis的实现代码

    本篇文章主要介绍了Java中使用Jedis操作Redis的实现代码。详细的介绍了Redis的安装和在java中的操作,具有一定的参考价值,有兴趣的可以了解一下
    2017-05-05
  • Java重点梳理类与对象核心原理

    Java重点梳理类与对象核心原理

    类(class)和对象(object)是两种以计算机为载体的计算机语言的合称。对象是对客观事物的抽象,类是对对象的抽象。类是一种抽象的数据类型
    2022-07-07
  • Java Iterator迭代器_动力节点Java学院整理

    Java Iterator迭代器_动力节点Java学院整理

    迭代器是一种模式,它可以使得对于序列类型的数据结构的遍历行为与被遍历的对象分离,接下来通过本文给大家分享Java Iterator迭代器_动力节点Java学院整理,需要的朋友参考下吧
    2017-05-05
  • Java使用application.property读取文件里面的值

    Java使用application.property读取文件里面的值

    本文通过实例代码给大家介绍了Java使用application.property读取文件里面的值,需要的朋友可以参考下
    2018-10-10
  • JAVA核心知识之ConcurrentHashMap源码分析

    JAVA核心知识之ConcurrentHashMap源码分析

    这篇文章主要介绍了JAVA核心知识之ConcurrentHashMap源码分析,想了解ConcurrentHashMap的同学一定要看啊
    2021-04-04
  • Spring的UnsatisfiedDependencyException异常的解决

    Spring的UnsatisfiedDependencyException异常的解决

    在使用Spring框架开发应用程序时,我们经常会遇到各种异常,本文主要介绍了Spring的UnsatisfiedDependencyException异常的解决,感兴趣的可以了解一下
    2023-11-11
  • Java中的ThreadLocal与ThreadLocalMap详解

    Java中的ThreadLocal与ThreadLocalMap详解

    这篇文章主要介绍了Java中的ThreadLocal与ThreadLocalMap详解,ThreadLocal 是一个线程局部变量,其实的功用非常简单,就是为每一个使用该变量的线程都提供一个变量值的副本,是Java中一种较为特殊的线程绑定机制,需要的朋友可以参考下
    2023-09-09
  • 关于log4j日志扩展---自定义PatternLayout

    关于log4j日志扩展---自定义PatternLayout

    这篇文章主要介绍了关于log4j日志扩展---自定义PatternLayout,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-12-12
  • Java8 Stream中间操作实例解析

    Java8 Stream中间操作实例解析

    这篇文章主要介绍了Java8 Stream中间操作实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-12-12

最新评论