http://www.php.net/manual/en/function.json-encode.php
“This function only works with UTF-8 encoded data.”
Der Witz ist, dass ohnehin nur ASCII herauskommt, weil sämtliche Nicht-ASCII-Zeichen in Strings durch Unicode-Escape-Sequenzen ersetzt werden.
Das ist so ein typische verquerte PHP-Herangehensweise an I18n. Warum auch immer man nur UTF-8 akzeptiert, dann aber ASCII ausgibt, anstatt UTF-8, wie es Standard für JSON ist.
So gesehen kann man auch vorher htmlentities() drauf werfen, wenn es sich ohnehin um HTML handelt. Ist genauso schlecht.
Mathias