現在、Eclipseを使用してJAVA Dynamic Webプロジェクトを開発しています。また、JSPを使用して、いくつかのユニバーサル文字(日本語/中国語など)をバッキングBeanに送信し、次にデータベースに送信したいと考えています。私はオンラインでいくつかの解決策を探してきましたが、残念ながらそれらのどれも私のために働きません。(参考までに、文字の表示はうまく機能しています)
Webページの見出しの変更を行いました。
<?xml version="1.0" encoding="UTF-8" ?> <%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
web.xmlの変更を行いました。
<url-pattern>*.jsp</url-pattern> <page-encoding>UTF-8</page-encoding>
persistence.xmlで、次の変更を行いました。
property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8"
tomcat server.xmlで、次の変更を行いました。
URIEncoding="UTF-8"
Beanのプロパティとデータベース列についても、utf-8に設定し、動作することがテストされています。
これらすべての変更が実際に問題を解決するわけではありません。JSPから、「哈」のように入力<h:inputText>
したところ、バッキングBeanとバッキングBeanに「&#2 1 7 0 4;」(文字の実際のutfコードであると思われる)が表示されていることがわかりました。データベースに表示されます。
強制などの他の方法もいくつか見ましたがresponse.setContentType("text/html; charset=utf-8")
、JSPをバッキングBeanに直接リンクしているため、これは私の場合には当てはまりません。