Как правильно отображать арабский язык в приложении Spring JSF MySQL? - PullRequest
2 голосов
/ 03 апреля 2012

Я использую Spring 3 , JSF 2 , MYSQL , Hibernate , и Heidi SQL - это инструмент GUI для базы данных и у меня проблема с кодировкой арабских символов в том, что арабские слова вставляются в базу данных как ?????????? и отображаются в виде в том же виде.

так вот моя конфигурация кодирования:

1- База данных:

  • Набор символов : UTF 8

  • Сортировка : utf8_general_ci

2- Пружина:

Я использую следующий фильтр:

<filter>
    <filter-name>encoding-filter</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>encoding-filter</filter-name>
    <url-pattern>/*</url-pattern>
    <dispatcher>REQUEST</dispatcher>
    <dispatcher>FORWARD</dispatcher>
  </filter-mapping>

3- JSF:

Насколько я знаю: Facelets использует UTF-8 по умолчанию.

4- Спящий режим:

вот URL подключения к базе данных:

jdbc:mysql://127.0.0.1:3306/mydb?zeroDateTimeBehavior=convertToNull&useUnicode=true&connectionCollation=utf8_general_ci&characterSetResults=utf8

пожалуйста, сообщите, если я что-то упустил в конфигурации.

Ответы [ 2 ]

2 голосов
/ 03 апреля 2012

Вы забыли параметр characterEncoding=UTF-8 в своем URL JDBC. Вот пересмотренный URL JDBC с минимально необходимыми параметрами, чтобы он мог правильно обрабатывать UTF-8:

jdbc:mysql://127.0.0.1:3306/mydb?useUnicode=true&characterEncoding=UTF-8

Смотри также:

1 голос
/ 07 мая 2012

если вы используете tomcat, вам потребуется добавить следующий аргумент в аргументы конфигурации:

-Dfile.encoding=UTF-8 

в дополнение к указанной выше конфигурации гибернации.

...