Java实现的utf8,gbk,unicode编码相互转换的代码详解编程语言
2023-06-13 09:20:29 时间
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 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();
}
原创文章,作者:Maggie-Hunter,如若转载,请注明出处:https://blog.ytso.com/10748.html
cjava相关文章
- 腾讯云短信服务实现 Java 发送手机验证码(SpringBoot+Redis 实现)
- java除零异常_JAVA异常处理
- java bufferedwriter 编码,Java BufferedWriter对象与utf-8
- java scanner怎么用_Java中Scanner类的用法及使用步骤分享!「建议收藏」
- java 论坛_5 个最好用的 Java 开源论坛系统
- java pfx 证书_Java将pfx证书转换为jks[通俗易懂]
- 怎么下载java_怎样下载Java的环境?
- MySQL字段类型如何转为java_Java JDBC中,MySQL字段类型到JAVA类型的转换
- java setproperty 未生效_Java System类setProperty()方法及示例[通俗易懂]
- 【说站】java反射获取对象的方法
- JAVA string转map_java怎么转业务
- Java转换流_java中的字符使用什么编码
- Java栈结构_栈java
- Java 中的变量类型、拆箱装箱及相互间的转换
- java list 转json 字符串_JSON的String字符串与Java的List列表对象的相互转换
- JAVA静态内部类_java静态内部类实例化
- Java缓存及过期处理的简单实现「建议收藏」
- java实现excel一万条数据批量导入
- 字符串 java字符串编码转换处理类详解编程语言
- java 数据库操作类详解编程语言
- Java学习笔记之一java关键字及作用详解编程语言
- JAVA 中文 unicode 相互转换 文件读取详解编程语言
- 使用Java连接Linux服务器的简单方法(java连接linux)
- Linux安装Java环境必备指南(linux装java)
- 使用Redis Java实现更高效的过期操作(redisjava过期)
- 数据处理在Java中处理Redis过期数据(redisjava过期)
- 设置Redis实现Java中过期设置的技术实现(redisjava过期)
- 使用Linux安装Java轻松搞定!(linux java安装)
- 从Java应用程序中实现Oracle配置连接(java配置oracle)
- 异常Java程序捕获Oracle异常从失败中学习(java捕获oracle)
- Oracle数据库中运行Java程序的简易指南(oracle中写java)
- 史上最全的java随机数生成算法分享