Estoy escribiendo un servicio web que usa json para representar sus recursos, y estoy un poco atascado pensando en la mejor manera de codificar el json. Al leer json rfc ( http://www.ietf.org/rfc/rfc4627.txt ), queda claro que la codificación preferida es utf-8. Pero el rfc también describe un mecanismo de escape de cadenas para especificar caracteres. Supongo que esto generalmente se usaría para escapar de caracteres no ascii, lo que haría que el utf-8 resultante fuera ascii válido.
Entonces, digamos que tengo una cadena json que contiene caracteres Unicode (puntos de código) que no son ASCII. ¿Mi servicio web debería codificarlo en utf-8 y devolverlo, o debería escapar de todos esos caracteres que no son ascii y devolver ascii puro?
Me gustaría que los navegadores pudieran ejecutar los resultados usando jsonp o eval. ¿Eso afecta la decisión? Mi conocimiento de la compatibilidad con JavaScript de varios navegadores para utf-8 es deficiente.
EDITAR: Quería aclarar que mi principal preocupación sobre cómo codificar los resultados es realmente sobre el manejo de los resultados por parte del navegador. Lo que he leído indica que los navegadores pueden ser sensibles a la codificación cuando usan JSONP en particular. No he encontrado ninguna información realmente buena sobre el tema, así que tendré que empezar a hacer algunas pruebas para ver qué sucede. Idealmente, me gustaría escapar solo de esos pocos caracteres que se requieren y solo utf-8 codificar los resultados.