Когда я пытаюсь добавить предложение в администратор Broadleaf, знаки евро (€) в имени или описании преобразуются в â¬
после сохранения.
Странная вещь в том, что это поведение не возникает при сохранении кода для этого предложения. Например:
â¬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, добавьте connectionPropeties в свои ресурсы в context.xml
. Это будет кодировать 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"/>
Вы также захотите настроить свои соединители с URIEncoding="UTF-8"
в server.xml
чтобы убедиться, что параметры запроса GET правильно закодированы. Это позволит фильтровать имена со специальными символами в админе. Здесь образец:
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
URIEncoding="UTF-8"/>
Это связано с этим замечательным ответом ниже, который охватывает UTF-8 в java webapps:
Как заставить UTF-8 работать в Java Webapps?
Надеюсь это поможет!