to_json konvertiert keine Sonderzeichen in den Unicode-Stil

8

Ich habe Probleme mit Sonderzeichen, wenn ich einen Hash in eine JSON-Zeichenfolge umwandle.

Alles funktioniert gut mit Ruby 2.0 / Rails 3.2.21, das heißt

%Vor%

Aber mit Ruby 2.3.0 / Rails 4.2.5.1 bekomme ich

%Vor%

Gibt es eine Möglichkeit, Ruby 2.3.0 zu zwingen, Sonderzeichen in Unicode-Style-Strings zu konvertieren ( \uXXXX )?

Bemerkung:

Beachten Sie, dass wir in Ruby 2.3 / Rails 4

erhalten %Vor%

In 2.0 erhalten wir jedoch

%Vor%

Es ist also klar, dass die Saite selbst anders ist, nicht verschiedene Ausgabeformate.

    
Ingo 23.06.2016, 09:57
quelle

1 Antwort

5

Ich ❤ Schienen (nur Spaß.)

In Rails3 gab es eine urkomische Methode , um UTF-8 in JSON zu beschädigen. Rails4, danke DHH, von diesem Nachteil befreit.

Also, ob man die Time-Back-Maschine möchte, ist der einfachste Weg, monkeypatch ::ActiveSupport::JSON::Encoding#escape :

%Vor%

Eine robustere Lösung wäre, das Ergebnis zu verfälschen:

%Vor%

Ich konnte kaum verstehen, warum jemand dies absichtlich tun möchte, aber die Lösung ist hier.

    
mudasobwa 23.06.2016, 10:49
quelle

Tags und Links