网上说是把中文变成ascii来发送,比如email发邮件时用到email附件用到呢,还是email里的具体内容用到?为什么email要用到base64编码转换?是email协议不支持中文还是服务器可能不支持中文?

解决方案 »

  1.   

    email中用base64是为了便于传输而不是为了加密什么的。base64本来就不是什么强悍的加密。以前看到过一个形容觉得很恰当,称base64是一种防君子不防小人的算法。在有很多中文和特殊字符的情况下,传输过程中经过很多"媒体",会造成多种多样的问题。经base64编码之后,所有字符都经过统一规范。的目的就是这个。
      

  2.   

    为什么其它有些不用base64呢?像普通的网页不用base64,ftp上传下载也不用是吧?
      

  3.   

    请了解一下相关smtp,http,ftp协议先。
    网页,请求是文本,发送来可以是二进制也可以是文本
    ftp支持bin,ascii两种模式而smtp发送二进制可能会遇到问题,比如结束符.,所以把二进制编码成ascii码发送。