json_encode macht ja aus einem String oder Objekt einen JSON-String. Das klappt auch gut. Nur bei folgendem String gibt die Funktion Null zurück und ich hab keine Ahnung, warum.
$result = json_encode("Anwender von SQL Azure müssen umdenken.");
Ja, den Fehler hatte ich auch schon mal. Das hat länger gedauert, bis ich drauf kam: json_encode hat ein Problem mit den Umlauten oder besser, mit Zeichen die Jenseits der 127 ASCII liegen. Du musst vorher entweder utf8_encode oder urlencode drüber laufen lassen. Dann geht es. Also
$result = json_encode(urlencode("Hier müssen die Zeichen konvertiert werden"));
Das ist es nicht! Lt. RFC 4627 Sektion 2.5 können/sollen High-Level-Characters in einem String escaped werden. Aus dem obigen String wird dann automatisch folgendes: "Anwender von SQL Azure m\u00fcssen umdenken."
Und PHP - auf jeden Fall 5.3 - macht das genau so.