java gbk转机内码_Java实现的UTF-8,GBK,Unicode编码相互转换的代码
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编码相互转换的代码相关推荐
- morse java_GitHub - TakWolf/Java-MorseCoder: 摩尔斯电码翻译器的一个 Java 语言实现。使用了非标准方式支持 Unicode 编码。...
Java - MorseCoder A Java implementation for Morse Code translation. Use non-standard way to support ...
- java 文件下载详解_Java 从网上下载文件的几种方式实例代码详解
废话不多说了,直接给大家贴代码了,具体代码如下所示: package com.github.pandafang.tool; import java.io.BufferedOutputStream; i ...
- java中修改密码_java中用户密码加密时增加和修改的代码
建一个MD5.java类 package util; /************************************************ MD5 算法的Java Bean Last M ...
- java中element转换_java中实体类与xml的element相互转换
import org.w3c.dom.Document; import org.w3c.dom.Element; /** * @ClassName: DemoConvert * @Author: 个人 ...
- java 随机手机验证码_Java实现随机生成手机短信验证码的简单代码
这篇文章主要介绍了Java随机生成手机短信验证码的方法,涉及Java数学运算计算随机数及字符串操作的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下 本文实例讲述了Java随机生成手机短信验证码的 ...
- java记事本课程设计_Java课程设计记事本的功能实现课程论文附代码
主要内容: 1设计背景 现在随着计算机科学日渐成熟,其强大的功能已经为人们深刻认识,它已经入人类社会的各个领域并发挥着越来越重要的作用,记事本是日常生活中常用到的工具,用户可以在其中方便地输入文字,从 ...
- JAVA 实现朋友圈_Java实现微信公众平台朋友圈分享功能详细代码
其实分享的方法在微信官网有较为详细的文档说明,现就其中一些比较绕的步骤进行总结,有问题随时交流哈. 首先微信其实已经自带分享到朋友圈,朋友,qq空间等功能,对于开发微信专门提供了一个接口,可以根据需要 ...
- java签到 表设计_java springboot 7天签到功能设计 数据库表设计 加代码
实现一个类似于这样的签到功能 (参考的百度网盘签到页面) 数据表是一个用户只有一条签到记录的设计, 没有使用签到一次表中加一条数据, 那样的话数据太多了 表结构: CREATE TABLE `sign ...
- java 集合数组 例子_Java数组元素去重(不使用集合)(示例代码)
/* * 需求:去除整型数组中重复的元素,不能使用集合等方法 * * 解决思路: * 1.对数组中的元素进行从小到大的顺序排序 * 2.获取数组中重复元素的个数 * 3.获取数组中重复元素的索引位置, ...
最新文章
- mysql5.0镜像_Mysql5.0学习笔记(一)
- 解密!谷歌这样搞定美军世纪难题,从眼科诊断到无人驾驶
- 关于jQuery中自定义函数的操作
- 每日站立会议个人博客(冲刺周)-Wednesday
- .NET Core 2.0 的dll实时更新、https、依赖包变更问题及解决
- 序列计数(动态规划/自动机/前缀和优化)
- [Golang] 用interface{}实现泛型出现的问题
- 怎样使用navicat将mysql的数据表导出保存(转储SQL文件)
- 解决频率选择性衰落的措施_螺杆压缩机,振动怎么办?解决办法在这里
- 分区工具parted的详解及常用分区使用方法
- 66、加一(python)
- android 实现仿美团点菜和京东分类导航
- 【金三银四】TCP,UDP,Socket,Http网络编程面试题(2021最新版)
- tomcat一次升级后启动报错的解决,IllegalArgumentException: AJP连接器配置secretRequired=“true“
- 论文精读: MapReduce
- Linux,ubuntu 格式化移动硬盘
- MT4外汇交易入门需要了解哪些基础知识?
- VIM 的 commentary 插件
- Java基本数据类型默认值和取值范围详解
- 黄山行之《黄山西海大峡谷》
热门文章
- [Android]挂断、接听电话
- java如何读取.properties配置文件
- 七年级计算机硬件系统教案,七年级《认识计算机硬件》教案.doc
- MacOS Ventura 13.2 (22D49) 正式版带 OC 0.8.8 and winPE 双分区原版黑苹果镜像
- pdf转换成excel转换器哪个好
- C语言中窗口暂停,C ++程序中的暂停控制台
- 2021文都最新数学考研讲义(数学一、数学二、数学三)
- 网站怎么样做更好的展现出这个企业品牌的形象?
- 音视频开发学习(三) -- RGB YUV HSV 颜色空间
- 【安装库】Pycharm安装Qt platform