域名基础知识 域名相关法规 域名停放赚钱域名选择/应用 域名价值分享 域名权威数据
返回首页

IE7中文域名不能正确解析的解决

时间:2008-02-27 12:40   来源:博客网
【导读】在IE6下访问是没任何问题的,不过在IE7下就会革皮! 因为伟大的IE7为了解决中文域名(不仅仅是中文域名),特意增加一个编码方式:punycode 如果你在IE7下访问http://博客园.cnblogs.com,并在你的HttpModule里捕捉HttpApplication.Request.Url,发现原型是: http://xn--

在IE6下访问是没任何问题的,不过在IE7下就会“革皮”!

因为伟大的IE7为了解决中文域名(不仅仅是中文域名),特意增加一个编码方式:punycode
如果你在IE7下访问http://博客园.cnblogs.com,并在你的HttpModule里捕捉HttpApplication.Request.Url,发现原型是:
http://xn--9kr06fj5e.cnblogs.com
此时如果你想要得到的“博客园”实际是“xn--9kr06fj5e”。
这样如果二级(或其他级域名)中如果有中文如何正确接受到呢?查下msdn,也没发现c#有直接从punycode到汉字的解码方法,
不过有个东东可以暂时解决一下:
下载:http://www.motobit.com/dlldownload/ScptUtl.exe并注册吧!!(有使用限制)

使用方法:
//
/// IE7下中文域名解决
///
///
///
string getCode(string str)
{
string code = str.Trim();
try
{
ScriptUtilities.ByteArray ba = new ScriptUtilities.ByteArray();
ba.CharSet = "gb2312";
ba.Punycode = str.Trim().Replace("xn--", "");
code = ba.String;
}
catch
{
//出错
}

return code;
}
这样就能把在IE7下接受到的“xn--9kr06fj5e”转换为“博客园”,暂时解决了。。。

不知那位朋友有从punycode到gb2312 c#算法?谢谢。
也不知道.net 3.x为什么不提供此解码方式?python等都已经提供。

责任编辑:米尊 

顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------


推荐内容
赞助商广告