.NET小技巧-URL中传递中文的解决方法
2012-03-06 17:09
246 查看
网页中URL传递中文时可能会出现乱码,此时可用以下方式解决:
一、设置web.config文件
<system.web>
<globalization fileEncoding="GB2312" requestEncoding="GB2312" responseEncoding="GB2312" culture="zh-CN" uiCulture="zh-CN"/>
</system.web>
二、在aspx页面中的head内指定编码
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
三、对要传递的中文先编码,接收再后解码
方法1:HttpUtility.UrlEncode
<asp:HyperLink ID="HyperLink1" runat="server" NavigateURL='<%# "B.aspx?str=" + HttpUtility.UrlEncode("汉字", System.Text.Encoding.GetEncoding("GB2312")) %>' >传递</asp:HyperLink>
方法2:Server.UrlEncode
string str = "汉字";
Response.Redirect("WebForm1.aspx?str=" + Server.UrlEncode(Name));
方法3:Javascript编码
<script language="JavaScript">
function GoUrl()
{
var str= "汉字";
location.href = "WebForm1.aspx?str="+escape(name);
}
</script>
上述3种方式传递过来的值进行解码:
if (Request["str"] != null && Request["str"].ToString() != "")
{
string str= Request["str"];
Response.Write(Server.UrlDecode(str));
}
==============================================================================
如果以上方法仍然不能正常传递中文,尝试:
1、将页面用记事本打开,然后另存为选择“UTF-8”编码方式,不选择默认的ANSI。
2、打开注册表,确保HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Inetinfo\Parameters\FavorDBCS的值为0。
3、重新启动IIS服务。
一、设置web.config文件
<system.web>
<globalization fileEncoding="GB2312" requestEncoding="GB2312" responseEncoding="GB2312" culture="zh-CN" uiCulture="zh-CN"/>
</system.web>
二、在aspx页面中的head内指定编码
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
三、对要传递的中文先编码,接收再后解码
方法1:HttpUtility.UrlEncode
<asp:HyperLink ID="HyperLink1" runat="server" NavigateURL='<%# "B.aspx?str=" + HttpUtility.UrlEncode("汉字", System.Text.Encoding.GetEncoding("GB2312")) %>' >传递</asp:HyperLink>
方法2:Server.UrlEncode
string str = "汉字";
Response.Redirect("WebForm1.aspx?str=" + Server.UrlEncode(Name));
方法3:Javascript编码
<script language="JavaScript">
function GoUrl()
{
var str= "汉字";
location.href = "WebForm1.aspx?str="+escape(name);
}
</script>
上述3种方式传递过来的值进行解码:
if (Request["str"] != null && Request["str"].ToString() != "")
{
string str= Request["str"];
Response.Write(Server.UrlDecode(str));
}
==============================================================================
如果以上方法仍然不能正常传递中文,尝试:
1、将页面用记事本打开,然后另存为选择“UTF-8”编码方式,不选择默认的ANSI。
2、打开注册表,确保HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Inetinfo\Parameters\FavorDBCS的值为0。
3、重新启动IIS服务。
相关文章推荐
- 备忘录:javascript通过url向jsp页面传递中文参数乱码解决方法
- 解决Fiddler查看Get方法传递URL参数中文乱码问题
- javascript通过url向jsp页面传递中文参数乱码解决方法
- php中url传递中文字符,特殊危险字符的解决方法
- javascript通过url向jsp页面传递中文参数乱码解决方法
- jquery.ajax的url中传递中文乱码问题的解决方法
- javascript通过url向jsp页面传递中文参数乱码解决方法
- Java 通过URL传递中文出现乱码的解决方法
- [转]解决get方法传递URL参数中文乱码问题
- GET方法URL中传递中文参数乱码的解决方法
- 解决get方法传递URL参数中文乱码问题
- [转]解决get方法传递URL参数中文乱码问题
- URL中传递中文字符的解决方法
- .Net获取URL中文参数值的乱码问题解决方法总结
- 解决get方法传递URL参数中文乱码问题
- birt关于在url传递中文参数的解决方法
- php中url传递中文字符,特殊危险字符的解决方法
- JAVASCRIPT用Url传递参数出现中文乱码的解决方法
- 解决get方法传递URL参数中文乱码问题