PHP學習 base64_encode +號變空格


在進行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);
        

程序中采用直接替換的方式,但不能避免別的符號出現錯誤,目前似乎只有+號會出錯?待排查


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM