utf8 unicode java_Java实现的utf8,gbk,unicode编码相互转换的代码
时间: 2024-03-01 17:53:30 浏览: 94
以下是Java实现的UTF-8、GBK、Unicode编码相互转换的代码:
UTF-8转换为Unicode:
```java
public static String utf8ToUnicode(String str) {
StringBuilder sb = new StringBuilder();
for (int i = 0; i < str.length(); ) {
char c = str.charAt(i);
if ((c & 0x80) == 0) {
// 单字节字符
sb.append(c);
i++;
} else if ((c & 0xE0) == 0xC0) {
// 双字节字符
int codepoint = ((c & 0x1F) << 6) | (str.charAt(i + 1) & 0x3F);
sb.append((char) codepoint);
i += 2;
} else {
// 三字节字符
int codepoint = ((c & 0xF) << 12) | ((str.charAt(i + 1) & 0x3F) << 6) | (str.charAt(i + 2) & 0x3F);
sb.append((char) codepoint);
i += 3;
}
}
return sb.toString();
}
```
GBK转换为Unicode:
```java
public static String gbkToUnicode(String str) {
StringBuilder sb = new StringBuilder();
try {
byte[] bytes = str.getBytes("GBK");
for (int i = 0; i < bytes.length; ) {
int codepoint = ((bytes[i] & 0xFF) << 8) | (bytes[i + 1] & 0xFF);
sb.append((char) codepoint);
i += 2;
}
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
return sb.toString();
}
```
Unicode转换为UTF-8:
```java
public static String unicodeToUtf8(String str) {
StringBuilder sb = new StringBuilder();
for (int i = 0; i < str.length(); i++) {
char c = str.charAt(i);
if (c <= 0x7F) {
sb.append(c);
} else if (c <= 0x7FF) {
sb.append((char) (((c >> 6) & 0x1F) | 0xC0));
sb.append((char) ((c & 0x3F) | 0x80));
} else {
sb.append((char) (((c >> 12) & 0xF) | 0xE0));
sb.append((char) (((c >> 6) & 0x3F) | 0x80));
sb.append((char) ((c & 0x3F) | 0x80));
}
}
return sb.toString();
}
```
Unicode转换为GBK:
```java
public static String unicodeToGbk(String str) {
StringBuilder sb = new StringBuilder();
try {
byte[] bytes = str.getBytes("Unicode");
for (int i = 2; i < bytes.length; i += 2) {
int codepoint = ((bytes[i + 1] & 0xFF) << 8) | (bytes[i] & 0xFF);
byte[] bs = String.valueOf((char) codepoint).getBytes("GBK");
sb.append(new String(bs, "GBK"));
}
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
return sb.toString();
}
```
以上代码仅供参考,实际使用时需要根据具体情况进行调整。
阅读全文
相关推荐















