當我測試這個腳本:什麼是函數md5()在PHP中的(默認)編碼?
$str = "apple";
echo md5($str);
結果匹配使用UTF8做MD5的結果(經測試使用C#)
我應該相信,這將永遠是在任何其他環境的情況下?
如果我將腳本放在任何虛擬主機,windows或linux上,它的行爲總是與UTF8
編碼相同?
當我測試這個腳本:什麼是函數md5()在PHP中的(默認)編碼?
$str = "apple";
echo md5($str);
結果匹配使用UTF8做MD5的結果(經測試使用C#)
我應該相信,這將永遠是在任何其他環境的情況下?
如果我將腳本放在任何虛擬主機,windows或linux上,它的行爲總是與UTF8
編碼相同?
字符串文字的編碼是您保存源文件時使用的任何編碼。如果以UTF-16格式保存此php文件,您將得到不同的結果,即代碼是否運行。
PHP中沒有統一或受管理的編碼。 PHP中的字符串可以是任何編碼,換句話說,它們是等效於具有更多抽象字符串類型的語言的字節數組。
只需md5()將始終給出相同的編碼。 如果您不能相信它,只需將數據編碼到數據庫本身即可。
使用相同的輸入它總是會給你相同的輸出,這是你問什麼? – Maerlyn
@Maerlyn是的,我擔心輸入會根據環境有不同的編碼,比如來自GET變量,或者通過Web瀏覽器或Web服務器預處理。 – sharp12345
您需要確保它使用相同的編碼。 – Maerlyn