package com.ittheima.web;
import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.annotation.*;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
@WebServlet("/req5")
public class RequestDemo3 extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// 2.解决乱码:post,getReader();
request.setCharacterEncoding("UTF-8");
// get解决
// 1.获取usernamel
String parameter = request.getParameter("username");
System.out.println("解决乱码前"+parameter);
// 3.get,获取参数方式,getQueryString
// 原因: tomcat 进行URL解码,默认的字符集ISO-88559-1
// 3.先对乱码数据进行编码,转为字节数组
byte[] bytes = parameter.getBytes("iso-8859-1");
// String s = new String(bytes, "utf-8");
parameter = new String(parameter.getBytes(StandardCharsets.ISO_8859_1));
System.out.println("解决乱码后"+parameter);
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
this.doGet(request, response);
}
}
package com.ittheima.web;
import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
import java.net.URLEncoder;
import java.nio.charset.StandardCharsets;
public class URLdemo {
public static void main(String[] args) throws UnsupportedEncodingException {
String username="张三";
// 1.编码
String encode = URLEncoder.encode(username, "utf-8");
System.out.println(encode);
String decode = URLDecoder.decode(encode, "iso-8859-1");
System.out.println(decode);
// 3.转换为字节数据
byte[] bytes = decode.getBytes("iso-8859-1");
for (byte aByte : bytes) {
System.out.print(aByte+" ");
}
System.out.println();
// 4.将字节数组转换成字符串
String s = new String(bytes, "utf-8");
System.out.println(s);
}
}