给一个客户做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 搞定!

 

 

 

posted on 2010-01-25 16:41  Gu  阅读(971)  评论(0编辑  收藏  举报