【发布时间】:2012-01-19 20:29:48
【问题描述】:
我需要生成一个“随机”的 128 字节密钥(目前随机性的强度并不重要)。我使用以下代码在 Javascript 中执行此操作:
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 个不同的字符,
127应该是最容易使用的,因为 PHP 将字符作为字节的概念。
标签: php javascript encoding character