ord()不适用于utf-8

Cur*_*ous 2 php unicode ascii

根据ISO 8859-1

€符号的小数值为128

我的默认PHP脚本编码是

echo mb_internal_encoding(); //ISO-8859-1
Run Code Online (Sandbox Code Playgroud)

所以现在作为PHP

echo chr(128);  //Output exactly what i want '€'
Run Code Online (Sandbox Code Playgroud)

echo ord('€');  //opposite it returns 226, it should be 128
Run Code Online (Sandbox Code Playgroud)

为什么会这样?

Pet*_*uss 5

它仅适用于2018年的PHP v7.2.0 +.

mb_ord()

现在你可以使用mb_ord().例echo mb_ord('€','UTF-8');

另请参见mb_chr(),以获取十进制代码的UTF-8表示.
例子echo mb_chr(2048,'UTF-8');.


最佳实践是要普及,保存你所有的PHP脚本为UTF-8 (见@deceze).