2

当我测试这个小脚本时:

$str = "apple";

echo md5($str);

结果与使用 utf8 做 md5 的结果相匹配(使用 C# 测试)

我是否应该相信在任何其他环境中总是如此?

如果我把这个脚本放在任何网络主机、windows 或 linux 上,它的行为是否总是与UTF8编码相同?

4

2 回答 2

6

字符串文字的编码是您保存源文件的任何编码。如果您将此 php 文件保存为 UTF-16,您会得到不同的结果,也就是说,如果代码甚至可以运行。

PHP 中没有统一或托管的编码。PHP 中的字符串可以采用任何编码方式,换句话说,它们相当于具有更抽象字符串类型的语言的字节数组。

于 2013-05-25T19:53:39.923 回答
0

简单地 md5() 将始终给出相同的编码。如果您不能信任它,您可以简单地在数据库本身中对数据进行编码。

于 2013-05-25T19:58:31.237 回答