2017-05-02 8 views
0

私のindex.xhtml入力フィールドからデータベースにデータを書き込むと、私は? ±πの代わりに。自分のデータベースの照合順序をutf8_general_ciに設定しました。私は私の価値をプリントアウトして、Tomcat 8の出力にはすでに見ましたか?だから私はそれがトマトの問題だと思う。私はガイドや他のstackoverflowの質問/ソリューションの多くをチェックアウトして、何も助けた。私が持っているTOMCATS のserver.xmlで:netbeans 8.1でのTomcat 8のutf-8設定が動作しない

TOMCATS のweb.xml
<Connector URIEncoding="UTF-8" connectionTimeout="20000" port="8084" protocol="HTTP/1.1" redirectPort="8443"/> 

を私はNetBeansで

<filter> 
     <filter-name>setCharacterEncodingFilter</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> 
     <async-supported>true</async-supported> 
    </filter> 

<filter-mapping> 
     <filter-name>setCharacterEncodingFilter</filter-name> 
     <url-pattern>/*</url-pattern> 
    </filter-mapping> 

をコメント解除これは私がやっていることですプロジェクトweb.xml私は

<filter> 
     <filter-name>setCharacterEncodingFilter</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>  
    </filter> 
    <filter-mapping> 
     <filter-name>setCharacterEncodingFilter</filter-name> 
     <url-pattern>/*</url-pattern> 
    </filter-mapping> 
    <servlet> 
     <servlet-name>Faces Servlet</servlet-name> 
     <servlet-class>javax.faces.webapp.FacesServlet</servlet-class> 
     <load-on-startup>1</load-on-startup> 
    </servlet> 
    <servlet-mapping> 
     <servlet-name>Faces Servlet</servlet-name> 
     <url-pattern>/faces/*</url-pattern> 
    </servlet-mapping> 
    <session-config> 
     <session-timeout> 
      30 
     </session-timeout> 
    </session-config> 
    <welcome-file-list> 
     <welcome-file>faces/index.xhtml</welcome-file> 
    </welcome-file-list> 
<jsp-config> 
    <jsp-property-group> 
     <url-pattern>*.jsp</url-pattern> 
     <page-encoding>UTF-8</page-encoding> 
    </jsp-property-group> 
</jsp-config> 

は、これはすべての問題を読んだ後、これは私が行うことができるすべてである私は、すべてのコードが

<f:view contentType="text/html" encoding="UTF-8"> 
<h:head> 
<meta http-equiv='Content-Type' content='text/html; charset=UTF-8' /> 
</h:head> 
    *code* 
</f:view> 

をカバーしている

package Servlets; 

import java.io.IOException; 

import javax.servlet.Filter; 
import javax.servlet.FilterChain; 
import javax.servlet.FilterConfig; 
import javax.servlet.ServletException; 
import javax.servlet.ServletRequest; 
import javax.servlet.ServletResponse; 


public class setCharacterEncodingFilter implements Filter { 

    @Override 
    public void init(FilterConfig filterConfig) 
      throws ServletException { 

    } 

    @Override 
    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) 
      throws IOException, ServletException { 
     servletRequest.setCharacterEncoding("UTF-8"); 
     servletResponse.setContentType("text/html; charset=UTF-8"); 
     filterChain.doFilter(servletRequest, servletResponse); 
    } 

    @Override 
    public void destroy() { 

    } 
} 

index.xtml setCharacterEncodingFilter.java私のフィルタであり、私は何か間違ったことをしましたか?

+0

を固定してしまった

<property name="javax.persistence.jdbc.url" value="jdbc:mysql:url?zeroDateTimeBehavior=convertToNull&amp;useEncoding=true&amp;characterEncoding=UTF-8"/> 

と? – getjackx

+0

私はJSFマネージドBeanで作成されたpersistメソッドを持ち、メソッド{persist(m);}を追加し、Beanでは単にコールマネージャを使用して、Thing m = new Thing(); m.setValue(value1); ThingManager tm =新しいThingManager(); tm.addThing(m); utf-8を設定する兆候はありません。そして私がすべての豆にutf-8を設定しなければならない場合、これは悪いことになります。私はすべてのプロジェクトが1つのフィールドだけでなくutf-8であると想像しています。 – Immortal

+0

私はちょうど推測ですが、 'Charset.forName(" UTF-8 ")。encode(myString) 'のようにJavaで値を再度エンコードする必要があるかもしれません。 [この質問](http://stackoverflow.com/questions/5729806/encode-string-to-utf-8)を参照してください。 – getjackx

答えて

0

私は答えを得た。 は、私が編集した - & useEncoding =真& characterEncoding = UTF-8、それはどのようなデータベースにデータを置くコードに関する

関連する問題