下面小编就为大家带来一篇java中unicode和中文相互转换的简单实现。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

如下所示:

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和中文相互转换的简单实现相关推荐

  1. java 三大集合_java中的三大集合入门笔记(简单实用)

    为什么使用集合框架 如图: 集合的好处: 集合弥补了数组的缺陷,它比数组更灵活更实用,可大大提高软件的开发效率,而且不同的集合适用于不同的场合. Java集合主要分为以下3种类型 Java集合框架提供 ...

  2. java字符集转换 Big5 和 Unicode互转

    完整的代码如下 帮助 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 ...

  3. java unicode 转换_Java unicode中文编码转换和反转

    在java的很多配置文件中,尤其是国际化资源中经常遇到类似\uf432这样的unicode编码,搜集了下该编码相关的资料,大致处理方法有如下: 1.Unicode转 汉字字符串. 这个过程最简单的方式 ...

  4. java url传参中文乱码问题_java中url传中文参数出现乱码

    缘由:java Http请求传输时将url以ISO-8859-1编码,服务器收到字节流后默认会以ISO-8859-1编码来解码成字符流(形成中文乱码).服务器 方法一:编码 咱们须要把request. ...

  5. java 字符串总结_Java中字符串(String)总结

    先说说JDK API: JDK中包含大量的API类库,所谓API(Application Programming Interface,应用程序编程接口,这些功能以类的形式封装). JDK API包含的 ...

  6. java有道_java中的各种流(老师的有道云笔记)

    内存操作流-字节 之前的文件操作流是以文件的输入输出为主的,当输出的位置变成了内存,那么就称为内存操作流.此时得使用内存流完成内存的输入和输出操作. 如果程序运行过程中要产生一些临时文件,可采用虚拟文 ...

  7. java 字符串用法_java中字符串的用法

    1.String中的每个字符都是一个16位的Unicode字符,用Unicode很容易表达丰富的国际化字符集,比如很好的中文支持.甚至Java的标识符都可以用汉字,但是没人会用吧(只在一本清华的< ...

  8. java 数据类型分为_JAVA中分为基本数据类型及引用数据类型

    byte:Java中最小的数据类型,在内存中占8位(bit),即1个字节,取值范围-128~127,默认值0 short:短整型,在内存中占16位,即2个字节,取值范围-32768~32717,默认值 ...

  9. java 声明数组_Java中的数组简介

    对于Java来说,如果需要用一种数据结构来保存若干个同类型的元素,那么可以选择使用数组. 所谓数组就是用来保存若干个同类型的数据元素,在Java中也可以认为数据元素就是对象.也就是说,只要给定了一个数 ...

最新文章

  1. 如何查看Linq to SQL运行时,实际执行的Sql语句
  2. MySQL数据库高可用集群搭建-PXC集群部署
  3. MiniDao普通项目集成方案
  4. GIS管网项目-flex/java
  5. mysql在计算机管理中的路径怎么修改_称重软件中的数据修改怎么知晓?
  6. 使用拓扑数据分析理解卷积神经网络模型的工作过程
  7. android+proguard目录,Android proguard问题:路径可能不是null或空字符串.路径=“空”...
  8. 有关android工程的构建脚本(build.xml)的学习
  9. 深度学习2.0-36.循环神经网络RNN-时间序列表示方法
  10. Oracle自定义函数示例
  11. arcgis许可服务器怎么修改,【ARCGIS】修改ARCGIS许可文件有效期
  12. tcp/ip IP数据报头详解
  13. qq邮箱注册收件服务器,qq邮箱smtp服务器
  14. dm7达梦7Linux安装包,【达梦】DM7安装部署 2 安装达梦7数据库软件
  15. 海外 Android 三方应用市场
  16. (人才测评)什么是创造力?如何提高创造力?
  17. Raspberry Pi 树莓派切换国内源
  18. 什么是V2X?如何通过V2X技术实现5G智慧交通?
  19. 绘画板绘-小白画线不稳怎么办?
  20. XXE漏洞介绍及利用

热门文章

  1. 一个超火的网站“Omegle”
  2. 基于python的疫情下的数据分析
  3. 用C语言实现快速排序算法
  4. 不会真的有人看不懂 Linux 小白都能看懂的大数据入门(一) 图文
  5. 客户需求的识别类型 客户需求识别的方法
  6. paddle 模型与层---- 笔记(边学边练)
  7. 一文搞懂数据转换之摘要、编码、加密、签名
  8. AI学习之路(4): TensorFlow是什么
  9. 小学学校计算机设备统计表,中小学实验教学仪器设备统计表新
  10. dnsmasq选项介绍