我需要生成一個「隨機」128字節的密鑰(隨機強度此刻不重要)。我這樣做在Javascript與下面的代碼:JavaScript和PHP中的字符編碼有區別嗎?
var buffer = "";
for(var i=0; i<128; i++)
{
buffer += String.fromCharCode(Math.round(Math.random()*255));
}
然而,當我發送此項通過POST PHP腳本,我發現,在我的鑰匙某些字符不具有相同的編碼!例如,當我在Javascript中輸出ò的編碼時,我得到254,但同一個字符在PHP中的編碼爲195。
某些字符,如A-Z,a-z和0-9在Javascript和PHP中都有相同的編碼。
要輸出字符代碼,我使用Javascript的.charCodeAt()方法和PHP的ord()函數。
我希望有人能向我解釋爲什麼字符編碼不同。謝謝!
如果你不需要255個字符的不同由於PHP的chars字節爲字節,因此'127'應該是最容易使用的。 – alex