さまざまな言語 (ドイツ語、スペイン語など) で動作するアプリケーションを開発しています。アプリケーションは Oracle DB を使用します。CRUD ビジネス プロセスがあり、標準ビュー (作成、編集、表示、リスト) があります。ä、ö、ü などの特殊文字を含むレコードの作成、表示、一覧表示には問題ありません。ただし、この文字を含むエントリを編集すると、エンコードされたバージョンが取得されます。すなわち & auml; ä & ouml; の代わりに ö & uuml; の代わりに üの代わりに
等々。
この問題を解決するヒントはありますか?
ありがとう!
更新 ご協力いただきありがとうございます。完全なシナリオについて説明します。
私はgrailsで書かれたWebアプリケーションを持っています(grailsのgroovy)。開発には、Jetty をサーバーとして使用し、Oracle 10g を使用しています。テストと本番用に Tomcat 6.0.18 を使用しており、Oracle 10g の Java バージョンは 1.6.0_02 です。
多くの CRUD プロセス (作成、取得、更新、削除) があります。アプリケーションは多言語です。つまり、ä、ö、ü、ß、á、é、í、ó、ú の文字 (文字) をコンテンツとして許可する必要があります。
ビューは gsp で記述されます。標準の .gsp ビュー (作成、編集、表示、リスト) を使用しています。作成、表示、一覧表示は問題ありません。つまり、作成ビューの下でこの特殊文字を使用して単語を入力すると、これは show.gsp または list.gsp の下に正しく表示またはリストされます。
このような文字を含むレコードを編集するときに問題が発生します。代わりに - としましょう - äがフィールドに表示されます & auml; (これは ä の html エンコーディングです)。
次の設定があります。
Config.groovy grails.views.gsp.encoding="UTF-8" grails.converters.encoding="UTF-8" の下
すべての .gsp ページには、次のメタ タグがあります。
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" pageEncoding="UTF-8"/>
すべてのフォームには次の属性があります。
<g:form accept-charset="UTF-8" method="post" >
Tomcat の下で、次の設定を行いました。
tomcat は、次のオプションで起動されます。
CATALINA_OPTS=-Dfile.encoding=UTF-8
JAVA_OPTS="-Duser.language=de -Duser.country=DE"
web.xml の下で、次のフィルターを設定します
<filter>
<filter-name>SetCharacterEncoding</filter-name>
<filter-class>filters.SetCharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
myApplication/WEB-INF/classes/filters の下に、examples/WEB-INF/classes/filters から SetCharacterEncodingFilter.class をコピーしました。
server.xml の下に、次のコネクタを設定します。
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" URIEncoding="UTF-8" useBodyEncodingForURI="UTF-8" />
シナリオは次のとおりです。サーバーは、フォームを編集するための要求を受け取ります。サーバーはDBから情報を取得してから、DBがすでにhtmlエンコードされた情報を送信している(そうは思わない)か、サーバーがそれをエンコードしてクライアントにエンコードして送信しています。
さらに、私のコントローラーでは、サーバーから取得した情報が html エンコードされていないことがわかります。
このエンコードの問題に対処するためにどの設定を行う必要があるのか わかりません(これには多くの時間と労力がかかります)。
よろしくお願いします。
ルイス