JavaScript で文字列を「UTF-8」から「cp1252」にエンコードしたいと考えています。
utf-8 として送信された HTML ドキュメントがあり、そのドキュメントには、「二」などの「UTF-8」文字を含む JsonString を保持する隠しフィールドがあります。Java Bean がサーバー側で正しい値を受信せず、"?" を取得します。
<h:inputHidden id="hiddenPropertiesValues"
value="#{Bean.newProperties}"/>
Java Bean クラスsscce
public void setNewProperties( String newProperties ) {
this.newProperties = newProperties;
}
最初にJavaコードでJsonStringを「cp1252」にトランスコードしようとしました。次に、トランスコードされた JsonString を隠しフィールドに入力します。Bean は正しい文字を取得できます。
そこで、文字列を「UTF-8」から「cp1252」にJavaScriptでエンコードすることで、この問題を解決できると考えました。
Html ファイルと Java Bean ファイルの両方が「UTF-8」を使用します。