0

アプリケーションで tai'an City のようなアポストロフィー " '" を含むものを検索すると、要求はデータベース チームに送信され、次のようになります tai'an city。リクエストに失敗している余分なアンパサンドを追加しています( ' --> ' のASCII値)。たとえば、余分なアンパサンドを手動で削除tai'an cityすると、リクエストは正常に処理されます。

リクエストを手動で設定するか、' を置き換えようとすると、" ' "のように

if(paramValue.contains("'")){
                paramValue = paramValue.replace("'", "'");
}

しかし、私はこれが正しい方法ではないことを知っています。この余分なアンパサンドの由来を知りたいです。誰もこれについて何か知っていますか?

4

1 に答える 1

1

おそらく、何らかの形式のオプションまたはURLにアポストロフィがあり、ブラウザはこれをエンティティに変換し、後でWebアプリケーションに送信します。試す:

<option value="tai%27an City">tai'an City</option>

<a href="www.example.com/foo?bar=tai%27an City">

データが元々&#x27;データベースのように保存されている場合、Webページでユーザーに渡されたときにデータが再エンコードされる場合があります(つまり、&in&#x27;はとして再エンコードされます&amp;)。たとえば、JSPを使用している場合は、c:outを指定しない限り、そのような文字をエスケープします<c:out escapeXml="false">。あなたがどのようなステップを踏んでいるのかを知らずにこれ以上推測することはできませんでしたが、これがあなたの問題を解決するためのガイドになることを願っています。

于 2013-03-12T10:09:02.433 に答える