2010-06-23 86 views
2

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

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

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

请帮忙。

回答

4

有两种情况。

1种情况的您的网址是中国真实的,那得到的唯一功能,它是Request.RawUrl(而不是的Request.QueryString [“文本”])从Request.RawUrl你需要手动从text =ελληνικασανκινεζικα获取您的中文文本。

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

String text = Server.UrlDecode(Request.QueryString["text"]); 

希望得到这个帮助。

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

+0

我不能使用案例2,因为来自客户端浏览器的请求是第一个请求。所以我没有设置查询字符串中的值。 我会尝试案例1. – 2010-06-23 13:32:29

+0

@A Junkie请记住,您需要手动才能获取文本...搜索?符号,然后为TEXT =等... – Aristos 2010-06-23 13:40:28

+0

嗨,我看到?也在原始网址中。 “ClienteExterno.aspx?text = ???&destinations = 6981” – 2010-06-23 13:47:30