最近在写一个程序发现点情况。如下:
上层应用将数据以base64的形式存在数据库中,现在需要新写一个C/S的客户端(C++)在转换过程中发现问题。 
原始字符串(应该是utf-8):电子地图
数据库中base64编码的字符串:55S15a2Q5Zyw5Zu+
用网上常见base64的方式解码:鐢靛瓙鍦板浘
原因应该是解码的接口是gb2312的方式,现在我想解成utf-8的形式,有办法么?
 
附 在线转换工具:
http://www.mxcz.net/tools/base64.aspx
 
希望得到指点,非常感谢!

解决方案 »

  1.   

    确实是UTF-8编码:
    >>> import base64
    >>> print base64.b64decode('55S15a2Q5Zyw5Zu+=').decode('utf')
    电子地图
    >>>
      

  2.   

    base64你是改不了了你只有把base64 decode出来的字符串进行编码转换为gbk非unicode下MultiByteToWideChar -> CP_UTF8然后WideCharToMultiByte -> CP_ACP
      

  3.   


    您好,
    由于您长时间不结贴,上一次答复已超一个月并且已有最佳答案,本人帮你结贴。
    若是觉得答案不嘉,请放在本版的疑难杂症帖链接:
    http://bbs.csdn.net/topics/390351579。
    如果您有什么意见,请您联系我。