私はDBでいくつかの文字(", \)
をUnicode値でエンコードしています(" , \)
。これらのフィールドをHTMLで表示すると正常に表示されますが、
要素を入力すると、デコードされた値ではなく<input type="text">
、実際の値で表示される情報がDBから取得されます。(" , \)
(", \)
入力タイプのテキスト要素でUnicode文字のデコードされた値を表示するにはどうすればよいですか?
この出力をJsonとして扱うjqueryライブラリにフィールドをフィードしています。
次に、入力としてテキストを受け取る入力を入力するとき、および入力としてHTMLを受け取るval()
ページの他の部分を入力するときに使用していると思います。html()
HTMLを含むJSONを送信しないでください。テキストを含むJSONを送信します。HTMLが必要なときにHTMLに変換します。HTMLをデータベースに保存しないでください。
これらの文字は、期待しているJSONオブジェクトを壊すので、すでにエスケープする必要があります。
HTMLではなくJSONとしてエンコードする必要があります。文字列をマッシュアップしてJSONを生成しようとしているのでない限り、この問題は発生しないはずです。そうしないでください。代わりにJSONライブラリを使用してください。
htmlEscape
入力フィールドでHTMLコンテンツサーバー側をエスケープしたのはSpringオプション(属性)であることが判明しました。
入力フィールドのその属性をfalseに設定すると、シーケンス"
はエスケープされず、クライアントが受信した応答の文字は代わりになりました"
。
残念ながら、JSPの入力タイプタグがHTMLではなくSpring固有であることを質問で指定しませんでした。これは、問題の重要な要因であるとは思わなかったためです。