0

ユーザーがテキストをフォーマットできるように、WYSIWYG を使用しています。これはエラーの原因となるテキストです:

<p><span style="line-height: 115%">This text starts with a 'T'</span></p>

エラーは、URLDecode を使用して DB に保存するときに、「This」の「T」または最初の文字がランダムに削除されることです。サーバー側で URLDecode を削除すると、悪影響を与えることなく修正されるようです (DB には同じ情報が含まれています)。

ドキュメントによると、

HTTP のクエリ文字列は常に URL エンコードされます。

これは本当にそうですか?もしそうなら、URLDecode を削除してもすべてが台無しにならないのはなぜですか?

2つの質問:

  1. URLDecode によって最初のテキスト文字がこのように削除されるのはなぜですか (line-height プロパティが存在する場合にのみ発生するようです)。
  2. POST されたデータをデータベースに入れる前に、URLDecode を使用する必要が本当にあるのでしょうか (または、使用したいと思いますか?)

編集: デコードされたテキストをエコー バックするテスト ページを作成しました。URLDecode は間違いなくその文字を削除していますが、その理由はわかりません。

4

1 に答える 1

1

formスコープが設定されると、デコードは自動的に行われると思います。そのため、%(この文字はエンコードに使用されます) の後の文字が削除されます。文字列を 2 回デコードしようとしています。

scriptセキュリティ上の理由から、タグを削除したり、ホワイトリストを使用して HTML をクリーンアップしたりすることに関心があるかもしれません。該当する機能については、 CFLib.orgで検索してみてください。

于 2011-04-19T16:27:14.917 に答える