Tôi đang viết một dịch vụ web sử dụng json để đại diện cho các tài nguyên của nó và tôi hơi khó nghĩ về cách tốt nhất để mã hóa json. Đọc json rfc ( http://www.ietf.org/rfc/rfc4627.txt ) rõ ràng là kiểu mã hóa ưu tiên là utf-8. Nhưng rfc cũng mô tả một cơ chế thoát chuỗi để chỉ định các ký tự. Tôi cho rằng điều này thường được sử dụng để thoát các ký tự không phải ascii, do đó làm cho kết quả utf-8 ascii hợp lệ.
Vì vậy, giả sử tôi có một chuỗi json chứa các ký tự unicode (điểm mã) không phải là ascii. Dịch vụ web của tôi nên mã hóa utf-8 và trả lại nó, hay nó phải thoát tất cả các ký tự không phải ascii đó và trả về ascii thuần túy?
Tôi muốn các trình duyệt có thể thực thi kết quả bằng jsonp hoặc eval. Điều đó có ảnh hưởng đến quyết định? Kiến thức của tôi về hỗ trợ javascript của các trình duyệt khác nhau cho utf-8 còn thiếu.
CHỈNH SỬA: Tôi muốn làm rõ rằng mối quan tâm chính của tôi về cách mã hóa kết quả thực sự là về việc xử lý kết quả của trình duyệt. Những gì tôi đã đọc chỉ ra rằng các trình duyệt có thể nhạy cảm với mã hóa khi sử dụng JSONP nói riêng. Tôi không tìm thấy bất kỳ thông tin thực sự tốt nào về chủ đề này, vì vậy tôi sẽ phải bắt đầu thực hiện một số thử nghiệm để xem điều gì sẽ xảy ra. Lý tưởng nhất là tôi chỉ muốn thoát một số ký tự được yêu cầu và chỉ mã hóa utf-8 kết quả.