public static String convertStr(String msg) throws UnsupportedEncodingException {
//先把字符串按gb2312转成byte数组
byte[] bytes = msg.getBytes("gb2312");
StringBuilder gbString = new StringBuilder();
for (byte b : bytes)
// 再用Integer中的方法,把每个byte转换成16进制输出
String temp = Integer.toHexString(b);
//判断进行截取
if(temp.length()>=8){
temp = temp.substring(6, 8);
gbString.append("%" + temp);
return gbString.toString();
再main中运行。打印如下
public static String convertStr(String msg) throws UnsupportedEncodingException { //先把字符串按gb2312转成byte数组 byte[] bytes = msg.getBytes("gb2312"); StringBuilder gbString = new StringBuilder(); for (byte b : bytes) { // 再用Integ.
Java获取GB2312所有汉字
GB2312中汉字的编码范围为,第一字节0xB0-0xF7(对应十进制为176-247),第二个字节0xA0-0xFE(对应十进制为160-254)
import java.io.File;
import java.io.FileWriter;
* @author lingkang
* @date 2021/10/4 16:46
* @description
public class Test01 {
public static void m
public class Mytest
public static void main(String[] args) throws UnsupportedEncodingException
String gb = "要转换的字符串";
编码问题分析
个人经验:
这几天在公司,发报文调试接口的时候由于使用UTF8跟GBK两种编码很头疼。页面显示为utf8码,但是解析报文使用的却是GBK,这样就会出现两种情况,要么你调试页面是正常的,报文是乱的,要么调试页面使用乱码格式,报文显示正常!。。。。
总结后:发现一个项目中必须要统一使用一种编码格式!然后就是不同编码必定会有差异,GBK编码跟utf8编码是不可能存在转换关系的,用
1 ASCII
American Standard Code for Information Interchange。最早最通用的单字节编码系统,因为发明时间早,所以ASCII编码表的设计较为简单。
ASCII表是单字节字符表,此表中一个(英文)字符用一个字节表示
在ASCII中从00000000(第0个)~00011111(第31个)前32被用来作为控制字符表示各种类似:响铃、退格、换页...
Java 中的字符串默认使用 UTF-16 编码,如果需要将 GB2312 编码的字符串转换为 UTF-8 编码的字符串,可以使用以下代码:
```java
String gb2312Str = "需要转换的字符串";
byte[] gb2312Bytes = gb2312Str.getBytes("GB2312");
String utf8Str = new String(gb2312Bytes, "UTF-8");
其中,`gb2312Str.getBytes("GB2312")` 将 GB2312 编码的字符串转换为字节数组,`new String(gb2312Bytes, "UTF-8")` 将字节数组转换为 UTF-8 编码的字符串。