方式一: 使用傳統(tǒng)的Spring提供的字符編碼過濾器
項(xiàng)目名稱:034-springboot-character-encoding-filter
在com.abc.springboot.servlet包在創(chuàng)建MyServlet
package com.abc.springboot.servlet;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
/**
* ClassName:MyServlet
* Package:com.abc.springboot.servlet
* Description:
*/
public class MyServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
resp.getWriter().print("SpringBoot MyServlet 世界您好");
//設(shè)置瀏覽器代碼
resp.setContentType("text/html;character=utf-8");
resp.getWriter().flush();
resp.getWriter().close();
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
super.doPost(req, resp);
}
}
在application.properties中設(shè)置spring.http.encoding.enabled=false
#關(guān)閉springboot的http字符編碼支持
#只有關(guān)閉該選項(xiàng)后,spring字符編碼過濾器CharacterEncodingFilter才會生效
spring.http.encoding.enabled=false
測試:spring.http.encoding.enabled=true,向?yàn)g覽器響應(yīng)中文
resp.getWriter().print("SpringBoot MyServlet 世界您好");
測試:spring.http.encoding.enabled=false,向?yàn)g覽器響應(yīng)中文
可以在servlet中添加response.setContextType(“text/html;charset=utf-8”)指定瀏覽器編碼方式。
項(xiàng)目名稱:035-springboot-character-encoding-properties
從 springboot 1.4.2 之后開始新增的一種字符編碼設(shè)置
#設(shè)置請求響應(yīng)的字符編碼
spring.http.encoding.enabled=true
spring.http.encoding.force=true
spring.http.encoding.charset=UTF-8
配置完畢后,通過瀏覽器測試
1、未添加字符編碼設(shè)置
2、已添加字符編碼設(shè)置