2015-11-02 3 views
0

В моем приложении я использую Spring, JPA Hibernate, JSF . Проблема заключается в том, что я пишу арабский текст и нахожу его в управляемом компоненте Bean like (Ùاب!) Я использую Tomcat v 7.0 ServerАрабский текст в управляемом bean-компоненте

web.xml

<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> 

форма является

<h:form dir="rtl" acceptcharset="UTF-8"> 

Перед Head

<?xml version="1.0" encoding="UTF-8"?> 

В начало страницы.

<f:view locale="TR" encoding="UTF-8" contentType="text/html" /> 
<meta http-equiv="content-type" content="text/html;charset=utf-8" /> 

Я использую @Named в управляемом компоненте @MangedBean и @Component не прав тоже.

База данных MySQL хороша Я прочитал из нее арабский текст правильно.

В конструкторе

HttpServletRequest req = (HttpServletRequest) FacesContext.getCurrentInstance().getExternalContext().getRequest(); 
HttpServletResponse res = (HttpServletResponse) FacesContext.getCurrentInstance().getExternalContext().getResponse(); 

try { 
    req.setCharacterEncoding("UTF-8"); 
    res.setCharacterEncoding("UTF-8"); 
} catch (UnsupportedEncodingException e) { 
    // TODO Auto-generated catch block 
    e.printStackTrace(); 
} 

Пожалуйста, любой намек взять правильный арабский текст. Спасибо заранее.

+0

Это трудно понять ваши точные проблемы. Вы имеете в виду, что когда вы выполняете 'System.out.println (input)' внутри управляемого bean-компонента, то вы видите Mojibake вместо арабского в журнале сервера? Что делать, если вы проигнорируете этот шаг и просто продолжаете сохранять входные данные в базе данных, значит, он все еще Mojibake или это правильный арабский там в базе данных? – BalusC

+0

Кстати, вам не нужно начинать каждое слово с капитала. Это затрудняет чтение вашего текста. Капитализация необходима только при начале предложений и для таких имен, как «JSF», «Hibernate» и т. Д. Попробуйте потратить немного больше времени на чтение английских статей и нахождение/выполнение тех же шаблонов. – BalusC

+0

ok Я буду читать английские статьи: D –

ответ

0

я решить эту проблему, когда я использовал кодирующий фильтр

кот
<filter> 
    <filter-name>SetCharacterEncoding</filter-name> 
    <filter-class>org.apache.catalina.filters.SetCharacterEncodingFilter</filter-class> 
    <init-param> 
     <param-name>encoding</param-name> 
     <param-value>UTF-8</param-value> 
    </init-param> 
    <init-param> 
     <param-name>ignore</param-name> 
     <param-value>false</param-value> 
    </init-param> 
</filter> 
<filter> 
    <filter-name>Conversation</filter-name> 
    <filter-class>org.jboss.weld.servlet.ConversationFilter</filter-class> 
</filter> 
<filter-mapping> 
    <filter-name>SetCharacterEncoding</filter-name> 
    <url-pattern>/*</url-pattern> 
</filter-mapping> 
<filter-mapping> 
    <filter-name>Conversation</filter-name> 
    <url-pattern>/*</url-pattern> 
</filter-mapping> 
+0

Фильтр с фильтром пружины делает то же самое, что и фильтр кодирования Tomcat. Настоящая причина все еще находится в другом месте. – BalusC

+0

эта работа со мной, но фильтр с фильтром пружины не работает –

Смежные вопросы