java实现UTF-8,GBK,Unicode编码相互转换,代码如下:

public class UTF2GBK {

public String gbk2utf8(String gbk) {

String l_temp = GBK2Unicode(gbk);

l_temp = unicodeToUtf8(l_temp);

return l_temp;

}

public String utf82gbk(String utf) {

String l_temp = utf8ToUnicode(utf);

l_temp = Unicode2GBK(l_temp);

return l_temp;

}

/**

*

* @param str

* @return String

*/

public static String GBK2Unicode(String str) {

StringBuffer result = new StringBuffer();

for (int i = 0; i < str.length(); i++) {

char chr1 = (char) str.charAt(i);

if (!isNeedConvert(chr1)) {

result.append(chr1);

continue;

}

result.append("\\u" + Integer.toHexString((int) chr1));

}

return result.toString();

}

/**

*

* @param dataStr

* @return String

*/

public static String Unicode2GBK(String dataStr) {

int index = 0;

StringBuffer buffer = new StringBuffer();

int li_len = dataStr.length();

while (index < li_len) {

if (index >= li_len - 1

|| !"\\u".equals(dataStr.substring(index, index + 2))) {

buffer.append(dataStr.charAt(index));

index++;

continue;

}

String charStr = "";

charStr = dataStr.substring(index + 2, index + 6);

char letter = (char) Integer.parseInt(charStr, 16);

buffer.append(letter);

index += 6;

}

return buffer.toString();

}

public static boolean isNeedConvert(char para) {

return ((para & (0x00FF)) != para);

}

/**

* utf-8 转unicode

*

* @param inStr

* @return String

*/

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();

}

/**

*

* @param theString

* @return String

*/

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 gbk转机内码_Java实现的UTF-8,GBK,Unicode编码相互转换的代码相关推荐

  1. morse java_GitHub - TakWolf/Java-MorseCoder: 摩尔斯电码翻译器的一个 Java 语言实现。使用了非标准方式支持 Unicode 编码。...

    Java - MorseCoder A Java implementation for Morse Code translation. Use non-standard way to support ...

  2. java 文件下载详解_Java 从网上下载文件的几种方式实例代码详解

    废话不多说了,直接给大家贴代码了,具体代码如下所示: package com.github.pandafang.tool; import java.io.BufferedOutputStream; i ...

  3. java中修改密码_java中用户密码加密时增加和修改的代码

    建一个MD5.java类 package util; /************************************************ MD5 算法的Java Bean Last M ...

  4. java中element转换_java中实体类与xml的element相互转换

    import org.w3c.dom.Document; import org.w3c.dom.Element; /** * @ClassName: DemoConvert * @Author: 个人 ...

  5. java 随机手机验证码_Java实现随机生成手机短信验证码的简单代码

    这篇文章主要介绍了Java随机生成手机短信验证码的方法,涉及Java数学运算计算随机数及字符串操作的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下 本文实例讲述了Java随机生成手机短信验证码的 ...

  6. java记事本课程设计_Java课程设计记事本的功能实现课程论文附代码

    主要内容: 1设计背景 现在随着计算机科学日渐成熟,其强大的功能已经为人们深刻认识,它已经入人类社会的各个领域并发挥着越来越重要的作用,记事本是日常生活中常用到的工具,用户可以在其中方便地输入文字,从 ...

  7. JAVA 实现朋友圈_Java实现微信公众平台朋友圈分享功能详细代码

    其实分享的方法在微信官网有较为详细的文档说明,现就其中一些比较绕的步骤进行总结,有问题随时交流哈. 首先微信其实已经自带分享到朋友圈,朋友,qq空间等功能,对于开发微信专门提供了一个接口,可以根据需要 ...

  8. java签到 表设计_java springboot 7天签到功能设计 数据库表设计 加代码

    实现一个类似于这样的签到功能 (参考的百度网盘签到页面) 数据表是一个用户只有一条签到记录的设计, 没有使用签到一次表中加一条数据, 那样的话数据太多了 表结构: CREATE TABLE `sign ...

  9. java 集合数组 例子_Java数组元素去重(不使用集合)(示例代码)

    /* * 需求:去除整型数组中重复的元素,不能使用集合等方法 * * 解决思路: * 1.对数组中的元素进行从小到大的顺序排序 * 2.获取数组中重复元素的个数 * 3.获取数组中重复元素的索引位置, ...

最新文章

  1. mysql5.0镜像_Mysql5.0学习笔记(一)
  2. 解密!谷歌这样搞定美军世纪难题,从眼科诊断到无人驾驶
  3. 关于jQuery中自定义函数的操作
  4. 每日站立会议个人博客(冲刺周)-Wednesday
  5. .NET Core 2.0 的dll实时更新、https、依赖包变更问题及解决
  6. 序列计数(动态规划/自动机/前缀和优化)
  7. [Golang] 用interface{}实现泛型出现的问题
  8. 怎样使用navicat将mysql的数据表导出保存(转储SQL文件)
  9. 解决频率选择性衰落的措施_螺杆压缩机,振动怎么办?解决办法在这里
  10. 分区工具parted的详解及常用分区使用方法
  11. 66、加一(python)
  12. android 实现仿美团点菜和京东分类导航
  13. 【金三银四】TCP,UDP,Socket,Http网络编程面试题(2021最新版)
  14. tomcat一次升级后启动报错的解决,IllegalArgumentException: AJP连接器配置secretRequired=“true“
  15. 论文精读: MapReduce
  16. Linux,ubuntu 格式化移动硬盘
  17. MT4外汇交易入门需要了解哪些基础知识?
  18. VIM 的 commentary 插件
  19. Java基本数据类型默认值和取值范围详解
  20. 黄山行之《黄山西海大峡谷》

热门文章

  1. [Android]挂断、接听电话
  2. java如何读取.properties配置文件
  3. 七年级计算机硬件系统教案,七年级《认识计算机硬件》教案.doc
  4. MacOS Ventura 13.2 (22D49) 正式版带 OC 0.8.8 and winPE 双分区原版黑苹果镜像
  5. pdf转换成excel转换器哪个好
  6. C语言中窗口暂停,C ++程序中的暂停控制台
  7. 2021文都最新数学考研讲义(数学一、数学二、数学三)
  8. 网站怎么样做更好的展现出这个企业品牌的形象?
  9. 音视频开发学习(三) -- RGB YUV HSV 颜色空间
  10. 【安装库】Pycharm安装Qt platform