昨天用CNDottext建了一个blog,注册部分稍微改写了一下,需要用论坛的用户名密码验证。那个验证程序是以前asp做的,接受用户名和密码两个参数,验证成功后输出xml格式的用户详细信息。这之中发现一个问题,中文用户名经过asp.net的Server.UrlEncode 之后是4字节编码(UTF8),而asp的urlencode却是用的系统默认编码,2字节。开始想当然的用 Encoding.Convert转换一下,可惜试验几次都失败。
巧的是,本想看一下HttpServerUtility的UrlEncode有没有什么说明,结果马虎之下点上了 HttpUtility,发现里面也有一个UrlEncode,其中有一个重载
试一下 HttpUtility.UrlEncode (name, Encoding.Default).ToUpper();
OK! 跟asp的结果一样。
巧的是,本想看一下HttpServerUtility的UrlEncode有没有什么说明,结果马虎之下点上了 HttpUtility,发现里面也有一个UrlEncode,其中有一个重载
public static string UrlEncode(
string str,
Encoding e
);
string str,
Encoding e
);
OK! 跟asp的结果一样。