1. 程式人生 > >解決Get和post請求中中文亂碼問題

解決Get和post請求中中文亂碼問題

1.1 post請求解決亂碼

1.對於Post請求,只需在Servlet或者jsp中寫入如下程式碼就可以把解決從表單中傳入的中文亂碼問題

  request.setCharacterEncoding("utf-8");

  String str=request.getParameter("name");

  byte[] bytes=str.getBytes("ISO-8859-1");

  String name=new String(bytes,"utf-8");

2.客戶端和伺服器在傳遞資料時可以用過濾器filter解決字元編碼問題

<filter>

<filter-name

>CharacterEncodingFilter</filter-name>

<filter-class>com.dinfo.servlet.CharacterEncodingFilter</filter-class>

<init-param>

<param-name>encoding</param-name>

<param-value>UTF-8</param-value>

</init-param>

</filter>

<filter-mapping>

<filter-name

>CharacterEncodingFilter</filter-name>

<url-pattern>/*</url-pattern>

<dispatcher>REQUEST</dispatcher>

<dispatcher>FORWARD</dispatcher>

</filter-mapping>

1.2 get請求解決亂碼

1.使用編碼

客戶端和伺服器在傳遞資料時可以用過濾器filter解決字元編碼問題,但filter只能解決post方式提交的資料。對於get方式,可以使用兩次encodeURI(encodeURI(“

中文”))並在伺服器中使用URLDecoder.decode(“中文”,"UTF-8");