2

W3C 標準に従って、asp.net での特殊文字のデコード。ASCII - URL エンコーディング チャート。一部の特殊文字は変換されず、代わりに「?」に変換されます。以下の問題を確認してください。%92 ASCII の実際の結果は「`」です。これを達成して、urlencoding の等しい文字にデコードしようとしています。

strurl="Workers%92+Accommodation";
string strdecode=Server.UrlDecode(strurl);

例: ASCII コード %92 (W3C 標準の URL エンコードは ' 用です。これはキーボードにはありません。 http://www.w3schools.com/TAGS/ref_urlencode.aspを参照してください)。

4

2 に答える 2

4

これでエンコード/デコードしてみてください:

public static string EncodeString(string decodedString)
{
    return Convert.ToBase64String(Encoding.UTF8.GetBytes(decodedString));
}

public static string DecodeString(string encodedString)
{
    return Encoding.UTF8.GetString(Convert.FromBase64String(encodedString));
}

edit add: URL 経由で値を送信する場合、使用するメソッドは次のとおりです: HttpServerUtility.UrlTokenEncode() メソッド

参照: http://msdn.microsoft.com/en-us/library/system.web.httpserverutility.urltokenencode.aspx

于 2013-04-23T07:45:42.823 に答える
2

適切なエンコード コードページでデコードする必要があります。http://www.ascii-code.comからの引用:

8 ビット ASCII テーブルにはいくつかのバリエーションがあります。以下の表は、ISO Latin-1 とも呼ばれる ISO 8859-1 に基づいています。

http://en.wikipedia.org/wiki/Windows_code_pageによると、ISO Latin-1 のコードページは1252. 文字列をデコードするには、次のようにします。

strurl = Encoding.GetEncoding(1252).
             GetString(HttpUtility.UrlDecodeToBytes("%92"));
于 2013-04-23T08:47:06.397 に答える