求大神帮忙解读一段Java的代码,尽量详细!!!

2024-12-03 08:42:19
推荐回答(1个)
回答1:

//从请求中获取到的是gb2312编码的字符串
String gbStr = request.getParameter("参数名");
//byte[] 形式的内容
byte[] bytes = gbStr.getBytes("gb2312");
//UTF-8编码的字符串
String utfStr = new String(bytes,"UTF-8");
//GB2312编码的字符串
String newGbStr = new String(bytes,"GB2312");

1.首先你得到了一个字符串,你要知道它是什么编码表示的,像你上面配置的请求过来的字符串就是用gb2312编码表示的;

2.getBytes("编码") 得到的是一个 byte[] ,这是一个字节形式的内容,是底层表示,我们看到的汉字是 字节流加上指定编码集 才能表现出来的。所以转码什么的,都是 

String newStr = new String(str.getBytes("str编码"),"newStr编码");

3.你上面DataFormate类的两个转码处理应该是不对的