Fehler 'inkompatible Zeichencodierungen: ASCII-8BIT und UTF-8' aufgrund der 8-Bit-Codierung von Cookies (Rails 3 und Ruby 1.9)

8

Ich habe eine Web-App, die 1.8.7 verwendet, auf 1.9.2 verschoben und bekomme nun immer

%Vor%

Ich habe die Datenbankkodierung nach UTF-8 und ich habe auch 'config.encoding="utf-8"'.

Ich habe einige Ideen als mögliche Problemumgehungen gesehen und hinzugefügt

%Vor%

Aber es hat auch nicht funktioniert.

Ein bestimmter Codeabschnitt, an dem ich diesen Fehler erhalte, ist

%Vor%

Ich benutze HAML, ich habe line.titleize überprüft, und die Kodierung ist UTF-8. Scheint, dass die Vorlage mit ASCII-8BIT gerendert wird und es wird jedes Mal geschraubt, wenn ich versuche, Zeichen wie 'ñ'

zu rendern

Ich arbeite mit Rails 3.0.5.

Ich habe den Beitrag von James Edward Grey gelesen, aber ich kann immer noch herausfinden, was vor sich geht (.

Ich würde wirklich jede Art von Hilfe zu schätzen wissen: D.

Ich habe es auch versucht:

%Vor%

Und

%Vor%

Ohne etwas Glück.

Behoben

Siehe Kommentare.

    
Adolfo Builes 22.03.2011, 22:57
quelle

2 Antworten

5

Ich bin gerade auf etwas Ähnliches gestoßen ... und habe den Fix gefunden, der in den Kommentaren zu dieser Frage versteckt ist, aber denke, es ist es wert, explizit hervorgehoben zu werden:

Cookies sind ASCII-8BIT, aber Rails 3 Vorlagen sind standardmäßig utf-8. Das bedeutet, dass die Verwendung eines rohen Cookie-Werts in einer Ansicht Encoding :: CompatibilityError auslösen kann (wenn der Benutzer eine Inkompatibilität im Cookie-Wert hat)

Die Korrektur (wie von Adolfo Builes bemerkt) besteht darin, Ihre Cookie-Werte wie in UTF-8 zu verwenden:

%Vor%     
tardate 12.07.2011 09:59
quelle
-1

für haml put

%Vor%

Zeile oben links auf der Seite.

    
umitka 02.05.2012 10:14
quelle