直接使用例如:http://www.abc.php?name=中文符 ,客户端调用,在服务端修改后,会出现乱码,

而windows phone 又不能直接支持gb2312, 经过大量分析和验证,发现 凡事 经过”从汉字转换到16进制”后,

即可成功实现转码,代码如下:

 

            string text = "中文符";

            string url1 = "http://www.abc.php?name=";

            string url2 = url1 + Utf8ToGb2312(text, true);

/// <summary>
       /// 从汉字转换到16进制
       /// </summary>
       /// <param name="argStrUtf8"></param>
       /// <param name="argUseSeparator">是否每中文字符间用%分隔</param>
       /// <returns></returns>
       public static string Utf8ToGb2312(string argStrUtf8, bool argUseSeparator = true)
       { 
           if ((argStrUtf8.Length % 2) != 0)
           {
               argStrUtf8 += " ";//空格 
           }
           System.Text.Encoding chs = DBCSEncoding.GetDBCSEncoding("gb2312");//System.Text.Encoding.GetEncoding(charset);
           byte[] bytes = chs.GetBytes(argStrUtf8);
           string str = argUseSeparator ? "%" : "";
           for (int i = 0; i < bytes.Length; i++)
           {
               str += string.Format("{0:X}", bytes[i]);
               if (argUseSeparator && (i != bytes.Length - 1))
               {
                   str += string.Format("{0}", "%");
               }
           }
           return str.ToUpper();
       }

相关文章:

  • 2021-06-19
  • 2021-06-01
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2021-10-29
  • 2022-01-20
  • 2022-12-23
  • 2022-12-23
  • 2021-07-11
相关资源
相似解决方案