JSFとHibernateを介して中国語の文字列をMySQLに入力して保存しようとすると、問題が発生します。
実際、「System.out.print」を使用して、JSF入力フィールドに我(me)と入力した後、データベースに保存する前に、文字化けした単語が発生したことを検出しました。コードの一部は次のとおりです:index.xhtml
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html">
<h:head>
<title>Facelet Title</title>
</h:head>
<h:body>
<h:form>
<h:panelGrid columns="2">
<h:outputText value="Input"/>
<h:inputText value="#{showBean.input}" />
</h:panelGrid>
<h:commandLink action="#{showBean.show()}" value="Show"/>
</h:form>
</h:body>
</html>
ShowBean.java
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
@ManagedBean
@SessionScoped
public class showBean {
String input;
public showBean() {
input = null;
}
public String getInput() {
return input;
}
public void setInput(String input) {
System.out.println("set input " + input);
this.input = input;
}
public String show(){
System.out.println("show input " + input);
return "";
}
}
コンソール出力は次のとおりです。setinput???è??è?????è??è????? 入力を表示???è??è?????è??è?????