Tôi gặp sự cố với các ký tự đặc biệt khi truyền một hàm băm vào chuỗi json.to_json không chuyển đổi các ký tự đặc biệt thành kiểu unicode
Tất cả mọi thứ hoạt động tốt với Ruby 2.0/Rails 3.2.21, có nghĩa là,
puts "“".to_json
#"\u201c"
Nhưng với Ruby 2.3.0/Rails 4.2.5.1 tôi nhận được
puts "“".to_json
#"“"
Có cách nào để buộc Ruby 2.3.0 chuyển đổi các ký tự đặc biệt thành các chuỗi kiểu unicode (\uXXXX
)?
Ghi chú:
Chú ý rằng trong Ruby 2.3/Rails 4, chúng tôi nhận
"“".to_json.bytesize == 5 #true
Tuy nhiên, trong 2.0 chúng tôi nhận
"“".to_json.bytesize == 8 #true
Vì vậy, rõ ràng nó chuỗi riêng của mình đó là khác nhau , không phải định dạng đầu ra khác nhau.
Bạn so sánh việc thực hiện 'puts' các phiên bản ruby khác nhau. Bạn có muốn giải thích vấn đề thực sự bạn đang cố gắng giải quyết không? – mudasobwa
Tôi so sánh cái gì? Điều này không liên quan gì đến các triển khai đặt khác nhau. Xem "" ".to_json.bytesize == 5 cho 2.3 nhưng" "" .to_json.bytesize == 8 cho 2.0 – Ingo