从查询字符串中提取中文文本

A J*_*kie 2 c# asp.net encoding cjk

我需要从 ASP.NET Web 应用程序的查询字符串中提取中文字符。当我尝试时,我得到“????” 而不是实际的文本。我知道我需要用 UTF-8 解码它,但它不起作用。我用过了:

String text = System.Web.HttpUtility.UrlDecode(Request.QueryString["text"], System.Text.Encoding.UTF8);
Run Code Online (Sandbox Code Playgroud)

但我得到“???” 从手术回来。

请帮忙。

Ari*_*tos 5

有两种情况。

第一种情况,您的 URL 是真实的中文,唯一获取它的函数是Request.RawUrl(而不是 Request.QueryString["text"]) 从Request.RawUrl您需要手动从 text=?? ?????????????????????

第二种情况,您在发送之前首先对 URL 字符串进行编码。在这种情况下,我使用的代码是

String text = Server.UrlDecode(Request.QueryString["text"]);
Run Code Online (Sandbox Code Playgroud)

希望这有帮助。

注意:如果您尝试使用 Google Chrome 进行测试,那么您在 url chrome 上输入的内容是浏览器自动编码/解码的,您看不到实际发送的内容。尝试使用 ie 进行测试。