Ummm... acho que é o correto maneira na verdade.
\u00df
é uma representação unicode correta de ß
. Quando você json_decode()
de volta, ele se tornará ß
novamente. Onde isso está causando problemas para você? A extremidade receptora não está decodificando corretamente? Deveria se você usar o padrão
json_*
funções. Todos os exemplos no manual mostram a mesma coisa - caracteres além do intervalo ASCII são transformados em sequências numéricas.