utf8 转Big5 并談 urlencode的编码

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

原文地址:https://www.cnblogs.com/zitjubiz/p/1655990.html