使用Java的URLEncoder方法吧XML中的中文字符进行了编码,通过upd传递给VC后,VC如何实现解码?也就是VC++如何实现URLDecoder功能?能否给个例子?多谢各位大虾!

解决方案 »

  1.   

    你要知道URLENcoder是如何编码的,然后才能解码。。
    不然你就自己写个编码算法,最简单的就是异或一下。。
      

  2.   

    JAVA写的encode编码函数,求VC的解码函数
        public static String toUnicode(final String str)
        {
            try
            {
                return URLEncoder.encode(str, "UTF-8");
            }
            catch (UnsupportedEncodingException e)
            {
                logger.error("toUnicode failed", e);
                return str;
            }
        }
      

  3.   

    to:roman_v 我不懂encode编码原理,使用了JAVA提供的工具类URLEncoder.encode()实现的编码
      

  4.   

    http://blog.csdn.net/liuwenjie517333813/archive/2009/10/13/4662361.aspx
      

  5.   

    编码规则如下: 字符"a"-"z","A"-"Z","0"-"9",".","-","*",和"_" 都不被编码,维持原值, 空格" "被转换为加号"+"。 所有其他的字符都被认为是不安全的,首先都根据指定的编码scheme被转换为1个或者多个字节。[凭什么认为其他的字符都是不安全的?看来这些规范的制订者中没有中国人呀!] 然后每个字节都被表示成"%xy"格式的由3个字符组成的字符串,xy是字节的2位16进制的表达(xy is the two-digit hexadecimal representation of the byte),推荐的编码scheme为UTF-8,然而,出于兼容性的考虑,如果没有制定编码的scheme,那么将使用当前操作系统的编码的 scheme。 如:如果编码scheme是UTF-8, "The string ü@foo-bar"将被转换为"The+string+%C3%BC%40foo-bar" 。 因为载UTF-8中字符ü被编码成2个字节C3 (十六进制) 和BC (十六进制), 字符@被编码成一个字节40 (十六进制)。
    解码就是字符串解析+从编码值还原为文字了。。
      

  6.   

    TelCRM软件公司上面的字符串使用URLEncoder.encode后变成了下面的形式TelCRM%E8%BD%AF%E4%BB%B6%E5%85%AC%E5%8F%B8
      

  7.   

    http://www.vckbase.com/document/viewdoc/?id=1730url编码
      

  8.   

    多谢roman_v,正在看你提供的资料
      

  9.   

    楼上说的有道理,看看java是怎么编码的
      

  10.   

    换了一种方式实现
    使用base64编码能够实现java和vc的udp中文文本传递。相关的资源网上很容易搜索到。多谢大家