私は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固有であることを質問で指定しませんでした。これは、問題の重要な要因であるとは思わなかったためです。