1:表單提交controller獲得中文參數後亂碼解決方案 註意: jsp頁面編碼設置為UTF-8 form表單提交方式為必須為post,get方式下麵spring編碼過濾器不起效果 [html] view plain copy <%@ page language="java" import="ja ...
1:表單提交controller獲得中文參數後亂碼解決方案
註意: jsp頁面編碼設置為UTF-8
form表單提交方式為必須為post,get方式下麵spring編碼過濾器不起效果
[html] view plain copy
- <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
- <form action="${ctx}/user/addUser" name="userForm" method="post">
修改web.xml,增加編碼過濾器,如下(註意,需要設置forceEncoding參數值為true)
[html] view plain copy- <filter>
- <filter-name>characterEncodingFilter</filter-name>
- <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
- <init-param>
- <param-name>encoding</param-name>
- <param-value>UTF-8</param-value>
- </init-param>
- <init-param>
- <param-name>forceEncoding</param-name>
- <param-value>true</param-value>
- </init-param>
- </filter>
- <filter-mapping>
- <filter-name>characterEncodingFilter</filter-name>
- <url-pattern>/*</url-pattern>
- </filter-mapping>
2:表單提交controller獲得中文參數後正常顯示控制台,然後保存資料庫出現亂碼
註意:
資料庫編碼是否支持中文
資料庫表和表欄位是否正確
在配置連接資料庫的參數設置修改:
[html] view plain copy- <property name="url" value="jdbc:mysql://localhost:3306/dbname?useUnicode=true&characterEncoding=UTF-8"></property>
jsp頁面中文輸入,到controller亂碼,這時候需要設置的是在web.xml文件中添加一個編碼的過濾器(filter)將編碼統一為UTF-8,代碼如下:
01.
<filter>
02.
<filter-name>CharacterEncodingFilter</filter-name>
03.
<filter-
class
>org.springframework.web.filter.CharacterEncodingFilter</filter-
class
>
04.
<init-param>
05.
<param-name>encoding</param-name>
06.
<param-value>utf-
8
</param-value>
07.
</init-param>
08.
</filter>
09.
<filter-mapping>
10.
<filter-name>CharacterEncodingFilter</filter-name>
11.
<url-pattern>/*</url-pattern>
12.
</filter-mapping>
這裡需要註意的是,最好把這段代碼放在web.xml中開頭的位置,因為攔截有順序,如果放在後面的話容易攔截不到。
資料庫中文數據,jsp頁面顯示亂碼(不是嚴格意義上的亂碼,而是以問號的形式呈現)
1.
response.setContentType(
"application/json;charset=UTF-8"
);
//防止數據傳遞亂碼
寫上這句話就不會再出現亂碼了。
第三種情況:
這個問題困擾了我一段時間,開始覺得資料庫的編碼格式不正確,重新創建了編碼格式為utf-8的資料庫也還是不可以,最後覺得是jboss的問題,我們的伺服器用的是jboss,上網查了資料在連接數據源的時候加上編碼格式就可以了,代碼如下:
01.
<datasource
jta=
"true"
jndi-name=
"java:jboss/datasources/JcMysqlDS"
pool-name=
"JcMysqlDS"
enabled=
"true"
use-java-context=
"true"
>
02.
<connection-url>jdbc:mysql:
//192.168.24.46/ITOO_BASIC_BASIC?useUnicode=true&characterEncoding=UTF-8</connection-url>
03.
<driver>mysql</driver>
04.
<pool>
05.
<prefill>
false
</prefill>
06.
<use-strict-min>
false
</use-strict-min>
07.
<flush-strategy>FailingConnectionOnly</flush-strategy>
08.
</pool>
09.
<security>
10.
<user-name>root</user-name>
11.
<pass<a
href=
"http://www.it165.net/edu/ebg/"
target=
"_blank"
class
=
"keylink"
>word</a>>
123456
</pass<a
href=
"http://www.it165.net/edu/ebg/"
target=
"_blank"
class
=