Page 148 of 171

Rails 3 + invalid multibyte char (US-ASCII) (SyntaxError)

Przenosząc jeden z pluginów, na nowe railsy, dostawałem taki oto błąd kiedy odpalałem mongrela:

invalid multibyte char (US-ASCII) (SyntaxError)

Rozwiązanie jest bardzo proste. Wystarczy na początku pliku z którego idzie zgłoszenie, dodać "magiczny komentarz":

# coding: utf-8

Pamiętaj - ten komentarz musi być pierwszy.

Tym krótkim postem, rozpoczynam serię wpisów nt migracji aplikacji z Rails 2.3.5 na Rails 3 :)

Rails, Cookies (ciasteczka) oraz przecinki

Kilka dni temu, potrzebowałem odczytywać na potrzeby analizy, zawartość ciastka odpowiedzialnego za GUI interfejsu do Susanoo. Jakież było moje zdziwienie gdy zamiast oczekiwanego:

0,1,3,4,2,5,7,6,8||||280||||1200

Railsy widziały samo 0, a dokładniej to wartości do pierwszego przecinka.

Po chwili googlania, znalazłem taką oto wiadomość:

According to RFC 2109, commas aren't allowed in the cookie value and should be encoded.

Jak się później okazało, Railsy po prostu zachowują się poprawnie ;) więc musiałem nie ładować do ciastka przecinków.

Okazało się to bardzo proste, ponieważ między ciastkiem a warstwą aplikacji mam jeszcze warstwę abstrakcji, w której dzięki niewielkiej zmianie, zamieniam wszystkie przecinki na pauzy w taki sposób:

value = (String(value)).replace(/\,/gi,'-');

Następnie przy odczycie, robię to samo tylko w drugą stronę:

ret = ret.replace(/\-/gi,',');

Dodam tylko, że w zawartości ciastka, nie powinno być także poniższych znaków:

()<>@;:\"/[]?={}

oraz spacji i tabulatorów.

Copyright © 2025 Closer to Code

Theme by Anders NorenUp ↑