none
Metro开发中怎么把中文转成%xx%yy这种形式的ANSI编码 RRS feed

  • 问题

  • 比如“新建文件夹”转换后是%D0%C2%BD%A8%CE%C4%BC%FE%BC%D0这样的。

    或者直接告诉我怎么把一个有中文的URL转成上面的形式。当然,URL中的英文不用转。

    如果没有直接的方法转,也可以说说怎么用逻辑算法转成上面的形式。

    谢谢大家了!

    2014年6月17日 15:53

答案

  • 我做自己写了个方法已经解决了这个问题了

    public  string GetHexFromChs(string s)  
            {
    
                System.Text.Encoding chs = System.Text.Encoding.GetEncoding("gb2312");
                string str = "";
                    byte[] bytes = chs.GetBytes(s);
                    for (int i = 0; i < bytes.Length; i++)
                    {
                        str += "%" + string.Format("{0:X}", bytes[i]);
                    }
    
                return  str;
            }

    • 已标记为答案 roomanl 2014年6月20日 2:15
    2014年6月20日 2:15

全部回复

  • 你好。

    Windows Store 应用中可以使用System.Uri的EscapeUriString方法来转换含汉字的网址。

    string str = System.Uri.EscapeUriString("要转换的含汉字的网址");

    2014年6月18日 0:54
    版主
  • 不好意思啊,你的这种转法转成的编码不是我上面的编码。

    我的URI是一个FTP的URI。在浏览器中打开FTP就会自动把汉字转换编码,也就是我上面的那种编码。

    2014年6月18日 7:01
  • 我做自己写了个方法已经解决了这个问题了

    public  string GetHexFromChs(string s)  
            {
    
                System.Text.Encoding chs = System.Text.Encoding.GetEncoding("gb2312");
                string str = "";
                    byte[] bytes = chs.GetBytes(s);
                    for (int i = 0; i < bytes.Length; i++)
                    {
                        str += "%" + string.Format("{0:X}", bytes[i]);
                    }
    
                return  str;
            }

    • 已标记为答案 roomanl 2014年6月20日 2:15
    2014年6月20日 2:15
  • 你好。

    非常高兴这个问题得到了解决。前面是我对你的具体需求没弄清楚,以为你做要做Url的汉字转义。

    希望这个答案能帮助更多的人。

    2014年6月20日 3:09
    版主