Они выдают разные выходные данные, потому что вы предоставили разные входные данные, то есть разные кодировки символов: Firefox использует UTF-8 , а ваш PHP-скрипт использует Windows-1252 . Хотя в обоих наборах символов символы находятся в одной и той же позиции (ß
= 0xDF, ä
= 0xE4), т. Е. Имеют одинаковую кодовую точку, они кодируют эту кодовую точку по-разному:
CP | UTF-8 | Windows-1252
------+--------+--------------
0xDF | 0xC39F | 0xDF
0xE4 | 0xC3A4 | 0xE4
Используйте ту же кодировку символов (предпочтительно UTF-8), и вы получите тот же результат.