php 函数 ord 问题 ord ("ü") return

php function ord problem ord ("ü") return

我正在将一些函数从 VB 传递给 PHP 我在使用 php - ord 方法时遇到问题。

示例:

ord ("a") = 97 OK
ord ("ü") = 195 NOT OK

ord("ü")的结果应该是50108

in VB ASC ("ü") = 50108 用于加密密码的功能。

提前感谢您的回答!

如文档中所述,php 函数 ord() 无法处理 unicode 字符。除此之外,文档还说:

ord — Convert the first byte of a string to a value between 0 and 255

您可以改用二进制安全功能mb_ord()

<?php
var_dump(mb_ord('ü', 'ascii')); // => 195
var_dump(mb_ord('ü', 'utf-16') // => 50108

如您所见here十进制字节值为 195,严格的十进制值为 50108。这完全取决于字符的编码。