Nffish's Blog

好记性不如烂笔头

十一月 25th, 2009

中文字符串转换成十六进制的网址格式

.Net, by Nffish.

使用中文unicode作网址,第三方控件出现乱码。在我自己的电脑上测试没问题的,到别的机器就有问题了。
一个非常诡异的问题。
估计是编码不一致引起的。
干脆直接把中文转换成了十六进制。

  1. /// <summary>
  2.         /// 中文字符串转换成十六进制的网址格式
  3.         /// </summary>
  4.         /// <param name="str"></param>
  5.         /// <returns></returns>
  6.         public static string String2Hex(string str)
  7.         {
  8.             //把字符串放到数组里
  9.             char[] c = new char[str.Length];
  10.             for (int i = 0; i < str.Length; i++)
  11.             {
  12.                 c[i] = str[i];
  13.             }
  14.  
  15.  
  16.             //注意编码,根据需要GB2312或UTF-8
  17.             Byte[] textByte = System.Text.Encoding.GetEncoding("UTF-8").GetBytes(c);
  18.  
  19.             StringBuilder text = new StringBuilder();
  20.             for (int j = 0; j < textByte.Length; j++)
  21.             {
  22.                 // to char
  23.                 char textChar = Convert.ToChar(int.Parse(textByte[j].ToString()));
  24.                 // to Hex
  25.                 text.Append(System.Uri.HexEscape(textChar));
  26.             }
  27.             return text.ToString();
  28.         }

Back Top

回复自“中文字符串转换成十六进制的网址格式”

  1. 靠,排名比较高,顺手就进来了,昌耀,不错

    Reply

  1. 没有任何引用。

发表评论

电子邮件地址不会被公开。 必填项已用 * 标注

*