给一个客户做SMS的接口, 网关公司提供的Big5的Url接口,传过去的字符串必须是BIG5编码
刚开始尝试把整个aspx页面存为big5码,但传过去的sms还是乱码.
后来写了方法
private string ChangeEncoding(string unicodeString)
{
byte[] bytData = Encoding.UTF8.GetBytes(unicodeString);
//Big5's codepage is 950
Encoding cp950 = Encoding.GetEncoding(950);
byte[] cp950Bytes = Encoding.Convert(Encoding.UTF8, cp950, bytData);
return cp950.GetString(cp950Bytes);
}
然后再用server.urlencode传到网关,结果还是乱码.....
仔细检查一下,原来是 server.urlencode的问题. 它默认还是用utf-8编码的.
改用 HttpUtility.UrlEncode(txtSMS.Text, Encoding.GetEncoding(950)) ;
OK 搞定!