[英]Broadleaf UTF-8 encoding
當我嘗試添加在闊葉管理員的報價,歐元符號(€)的名稱或描述被轉換成â¬
保存后。
奇怪的是,為此優惠保存代碼時不會發生此行為。 例如:
â¬5 promo
(不好) €5 code
(良好) 我認為這與保存有關,因為當我修改數據庫中的字段時,它會正確顯示。 當我嘗試編輯並保存奇怪的符號時,將再次接管...
編輯1
JerryOz非常接近解決方案。 我唯一需要添加的內容(在他的解決方案旁邊)是我的web.xml中的以下代碼:
<filter>
<filter-name>encodingFilter</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>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
問題是該應用程序進入數據庫時編碼不正確。 如果您使用的是Tomcat,請在context.xml
中將connectionPropeties添加到您的資源中。 這將編碼為UTF-8,並允許將特殊字符正確保存在數據庫中。 這是一個示例:
<Resource name="jdbc/web" auth="Container" type="javax.sql.DataSource"
maxActive="30" maxIdle="60" maxWait="10000"
username="username" password="password" driverClassName="com.mysql.jdbc.Driver"
connectionProperties="useUnicode=true;characterEncoding=utf8;"
url="jdbc:mysql://localhost/broadleaf"/>
您還需要在server.xml
使用URIEncoding="UTF-8"
配置連接器,以確保GET請求參數得到正確編碼。 這將允許在管理員中過濾帶有特殊字符的名稱。 這是一個示例:
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
URIEncoding="UTF-8"/>
這與下面的一個很好的答案有關,該答案涵蓋了Java webapps中的UTF-8:
希望這可以幫助!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.