在進行base64編碼解碼的時候出現的+號在通過html由后台php->get讀取時會被自動替換成空格,造成亂碼的問題
經過查證這並不是echo顯示出錯而是客觀存在的
原因摘自:http://blog.csdn.net/wang0928007/article/details/7429568
“加號(+)是BASE64編碼的一部分,而加號在QueryString中被當成是空格。 因此,當一個含有BASE64編碼的字符串直接作為URL的一部分時,如果其中含有加號,則使用QueryString讀取時,再使用BASE64解碼就會發生錯誤。 解決的辦法有兩個:一是使用BASE64的字符串作為URL的一部分是,使用UrlEncode一類的函數進行編碼;二是在接收BASE64字符串后,使用ReplaceAll將字符串中的空格替換成加號,然后再解碼。 "
//解決base64轉碼過程中+變成空格的問題 $key = str_replace(' ','+',$this->input->get('key')); $key = base64_decode($key);
程序中采用直接替換的方式,但不能避免別的符號出現錯誤,目前似乎只有+號會出錯?待排查