2012-05-25 35 views
4

我有一个nvarchar数据类型的字段来存储UNICODE值。该字段绑定到Repeater Control,通过点击链接,我将其重定向到其他页面。当此字段包含字段中的数值时,我会得到正确的QueryString,并显示重定向页面。但是,如果它包含一些unicode字符(数字或英文字符除外),则显示值'?????'在'fhn'的QueryString中。如何获取此UNICODE QueryString值,并显示结果?如何从asp.net中的具有UNICODE值的URL获取正确的QueryString值?

直放站ItemTemplate:它

<b>घर क्र./House No.</b><%# Eval("HouseNumber")%> 
<a href="AddressList.aspx?li=<%=Request.QueryString["li"].Trim().ToString() %>&fhn=<%# Eval("HouseNumber")%" target="_blank">या पत्यावरील </a> 

在cs文件:

string HouseNumber = Request.QueryString["fhn"].ToString().Trim(); 

//这里我得到了 '????'如果它包含unicode值,则返回值。

帮助感谢!

+0

什么'字符串HouseNumber = Encoding.GetBytes(的Request.QueryString [ “烽火”]的ToString()修剪());'? – mattytommo

+0

对不起@mattytommo! Encoding.GetBytes不存在...!它有Encoding.GetEncoding&Encoding.GetEncodings方法!那么,还有其他选择吗? –

回答

1

尝试将其更改到更多的东西是这样的:

<!-- Web.Config Configuration File -->``<configuration> <system.web> <customErrors mode="Off"/> <globalization fileEncoding="iso-8859-1" requestEncoding="iso-8859-1"responseEncoding="iso-8859-1"/> </system.web> </configuration>

+0

谢谢@Jaya Prakash Rokkam for reply!但是,整个页面显示'????'无论我在页面上使用Unicode!如上所述,在web.config中添加设置之后..! –

1

你必须要更精确。你可以设置你的web.config文件的请求和响应编码:

<system.web> 
    <globalization requestEncoding="iso-8859-1" responseEncoding="iso-8859-1" /> 
</system.web> 
+0

谢谢@Imran Rizvi回复!但是,不幸的是整个页面显示'????'无论我在页面上使用Unicode,并在上面提到的在web.config中添加设置后。 :-( –

+0

尝试使用Server.Web.UrlEncode和UrlDecode方法,在读取之前使用encode将查询字符串值添加到url并进行解码。 –