Mam problem ze znakami specjalnymi podczas przesyłania skrótu do łańcucha json.to_json nie konwertuje znaków specjalnych na styl Unicode
Wszystko działa poprawnie z Ruby 2.0/Rails 3.2.21, to znaczy
puts "“".to_json
#"\u201c"
Ale z Ruby 2.3.0/Rails 4.2.5.1 uzyskać
puts "“".to_json
#"“"
Czy istnieje jakiś sposób, zmusić Ruby 2.3.0 do konwersji znaków specjalnych na ciągi w stylu Unicode (\uXXXX
)?
Uwaga:
Zauważ, że w Ruby 2.3/Szyny 4, otrzymujemy
"“".to_json.bytesize == 5 #true
Jednak w 2,0 otrzymujemy
"“".to_json.bytesize == 8 #true
Tak wyraźnie to sam ciąg znaków, który jest inny , nie różne formaty wyjściowe.
Porównujesz 'puts' implementację różnych wersji ruby. Czy mógłbyś wyjaśnić, jaki jest prawdziwy problem, który próbujesz rozwiązać? – mudasobwa
Porównuję co? To nie ma nic wspólnego z różnymi implementacjami putów. Zobacz "" ".to_json.bytesize == 5 dla 2.3, ale" "" .to_json.bytesize == 8 dla 2.0 – Ingo