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/