1. java用sun.misc.BASE64Decoder获取域名,域用户名的字符串,但字符串异常
很有可能你得到的是“全角”字符串,现在很多服务器为了防止垃圾邮件而把人名邮箱都处理过了,很多年前(我在2001年就发现了) whois.com 就已经这么做了,而我们中国人的 cnnic.net 就看起来落伍了(到现在都没有做到防垃圾功能),比如邮箱换成全角或直接换成用一个图片显示整个邮箱,也有用多个图片分别拼出邮箱中的每个字母来,反正这个符号本身不是字符而是更原始的一个“符号”。当你得到一个全角字符时显示出来的效果就是“看起来很宽”,因为在程序看来它不是 ASCII 字母而是一个相当于汉字的符号。不过我们可以为全角字母准备一个字典来翻译一下。
从人的概念或业务来讲,很多数据本身是给“人” “看”的,这个信息被处理的方式是仅限于通过“眼睛”,因此我们应该杜绝程序能自动处理它们,就好像我们的登录验证码一样,这种程序设计是很合理的办法,既能防止垃圾邮件,又能防止不法分子批量收集数据做其它的难以预料的事情。
2. 关于sun.misc.BASE64Encoder 解密
BASE64Decoder
这个没有javadoc,属于jdk里不推荐使用的工具类
强烈建议不要用sun.misc,是不安全的,最好不要使用
解决方案:
使用apachecommon中的Base64替换
你可以在这里下载Apachecommonscodec:
http://commons.apache.org/codec/