Как упоминалось в документации, функция php ord () не может обрабатывать символы Юникода. Кроме того, в документации говорится:
ord - преобразовать первый байт строки в значение от 0 до 255
Вы можете использовать двоичную безопасную функцию mb_ord () вместо этого.
<?php
var_dump(mb_ord('ü', 'ascii')); // => 195
var_dump(mb_ord('ü', 'utf-16') // => 50108
Как вы можете видеть здесь десятичное значение в байтах составляет 195, а строгое десятичное значение - 50108. Все зависит от кодировки символ