私は現在、いくつかのリモートWebサービスを呼び出すC#WinFormsアプリケーションに取り組んでいます。アンパサンドを含む文字列に関連するバグを調査しているときに、他のWebサービス(確かにアンパサンドの問題はありません)のPOST本体を「エンコード」する次の方法に出くわしました。
object o = row.Values[i]; //some object
Type valueType = o.GetType();
if (valueType.Name.Equals("String", StringComparison.InvariantCultureIgnoreCase))
{
o = o.ToString().Replace("&", "%26");
}
私はこれで少しWTFを実行しましたが、POST本文で完全なURLエンコードを実行する実際の理由があるのでしょうか。確かに、2つのリスクポイントはアンパサンドと疑問符だけですか?