UTF-8文字入力(ISO-8859-1文字セットではない)でフォームを送信して、そのフォーム出力が書き込まれる場合、サーバーは間違った文字を出力します。
UTF-8 エンコーディングを使用するようにコンテンツタイプを設定します。例:
<%@taglib uri="/libs/CFC/resources/jstl/c.tld" prefix="c" %> <form method="post"> <input name="searchterm" value="<c:out value="${param.searchterm}" />" /><input type="submit" /> </form>
次に例を示します:
ユーザーがフォームフィールド(入力ボックス)に「Ã(a-Umlaut)」を挿入し、「送信」をクリックすると、JSTL ラウンドトリップの後で入力ボックスに「�」が表示されます。
同じサンプル JSP ページは、他のサーブレットエンジンでも正常に動作します。
予期される結果:
入力ボックスには「Ã」(a-Umlaut)が表示されます。
ソリューションの例:
<%@ page contentType="text/html;encoding=UTF-8" %> <%@ taglib uri="/libs/CFC/resources/jstl/c.tld" prefix="c" %> <form method="post"> <input name="searchterm" value="<c:out value="${param.searchterm}" />" /><input type="submit" /> </form>
この問題は、CQ サーブレットエンジンでデフォルトのエンコーディングが ISO-8859-1である場合に起こります。
アカウントにログイン