Thread View: pl.comp.lang.ruby
8 messages
8 total messages
Started by Marcin Wieczorek
Wed, 23 Aug 2006 09:54
Rails a polskie litery
Author: Marcin Wieczorek
Date: Wed, 23 Aug 2006 09:54
Date: Wed, 23 Aug 2006 09:54
14 lines
1294 bytes
1294 bytes
Witam! Mam problemy z polskimi literami w mojej aplikacji. Korzystam z InstantRails (to jest Apache/MySql/Ruby pod Windows) i Eclipse z modułem RadRails. Jeśli ustawię język kodowania w bazie na UTF to dane wpisywane w formularzach są potem pokazywane poprawnie. Nie widać natomiast pliterek w PhpAdminie choć to jest dla mnie mały problem. Niestety jeśli próbuję pokazać jakiś komunikat z wnętrza kodu to jest on zapisywany jako Windows-1250 a nie UTF i w HTMLu dostaję krzaki. Czy ktoś tworzył już aplikacje polskojęzyczne w Railsach i mógłby podzielić się ze mną swoimi rozwiązaniami?
Re: Rails a polskie litery
Author: Jaroslaw Zabiello
Date: Wed, 23 Aug 2006 09:57
Date: Wed, 23 Aug 2006 09:57
23 lines
1731 bytes
1731 bytes
On Wed, 23 Aug 2006 11:54:28 +0200, Marcin Wieczorek wrote: > Mam problemy z polskimi literami w mojej aplikacji. Korzystam z > InstantRails (to jest Apache/MySql/Ruby pod Windows) i Eclipse z modułem > RadRails. To ktoś używa InstantRails? Kiedyś spróbowałem i wywaliłem szybciej niż zainstalowałem. Prościej: czysty RadRails + jakiś desktopowy klient do bazy. > Niestety jeśli próbuję pokazać jakiś komunikat z wnętrza kodu to jest on > zapisywany jako Windows-1250 a nie UTF i w HTMLu dostaję krzaki. Nie napisałeś jaka to baza. Domyślam się że MySQL w wersji 4.1 wzwyż. Proponuje wywalić tego klienta co ci wyświetla cepa. Albo ustaw go aby pracował z utf8. W wypadku MySQL wystarczy że odpalisz: SET NAMES utf8 a baza sama zadba aby kient dostawał utf-8. Jak odpalisz SET NAMES latin2 to klient dostanie iso-8859-2 a jak wpiszesz SET NAMES cp1250 klient otrzyma cepa. -- Jarosław Zabiełło http://blog.zabiello.com
Re: Rails a polskie litery
Author: Marcin Wieczorek
Date: Wed, 23 Aug 2006 10:42
Date: Wed, 23 Aug 2006 10:42
37 lines
2596 bytes
2596 bytes
Jaroslaw Zabiello napisał(a): > To ktoś używa InstantRails? Kiedyś spróbowałem i wywaliłem szybciej niż > zainstalowałem. Prościej: czysty RadRails + jakiś desktopowy klient do > bazy. Jestem raczej początkujący jeżeli chodzi o rozwiązania serwer-side więc wolę rozwiązania typu: wszystko w jednym, jak najmniej ustawień. Przykładowy kod RoR działa na tym od kopa i to mi na razie wystarcza. Docelowo aplikacje mają chodzić i tak na Debianie z Apachem i MySQl. >> Niestety jeśli próbuję pokazać jakiś komunikat z wnętrza kodu to jest on >> zapisywany jako Windows-1250 a nie UTF i w HTMLu dostaję krzaki. > > Nie napisałeś jaka to baza. Domyślam się że MySQL w wersji 4.1 wzwyż. > Proponuje wywalić tego klienta co ci wyświetla cepa. Albo ustaw go aby > pracował z utf8. W wypadku MySQL wystarczy że odpalisz: SET NAMES utf8 a > baza sama zadba aby kient dostawał utf-8. Jak odpalisz SET NAMES latin2 to > klient dostanie iso-8859-2 a jak wpiszesz SET NAMES cp1250 klient otrzyma > cepa. > PHP Admin pokazuje, że jest to 4.1.9-max. Tabela jest zdefiniowana jako: ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin; Jak pisałem dane tworzone kodem scaffolda są potem wyświetlane poprawnie. Problem mam z pokazywaniem komunikatów z wnętrza kodu. validates_presence_of(:name, :message => "ąłóśćżńź") Powyższe generuje na stronie śmieci. Przeglądarka twierdzi, że strona jest przesyłana w UTF-8. Eclipse zapisuje kod Rubiego w Windows-1250. Potrzebne jest tu jakieś przekodowanie tekstu do Unikodu. Niestety nie bardzo wiem co z tym zrobić. Myślałem już nawet o całkowitym przejściu na Windows-1250 (wraz z generowanymi HTMLami) ale wolałbym zostać przy Unikodzie.
Re: Rails a polskie litery
Author: janu
Date: Wed, 23 Aug 2006 10:51
Date: Wed, 23 Aug 2006 10:51
32 lines
2664 bytes
2664 bytes
Witam, Po pierwsze - takie rozwiązanie 3 w 1 jest kiepskie - lepiej zainstalować oddzielnie MySQL (instalacja klikalna), Ruby (tez klikalna), potem sciagnac gem railsow (opis jest na stronie railsow, a spowadza sie do wpisania w konsoli "gem install rails --include-dependencies"), na koncu instalacja eclipse (a wlasciwie uruchomienie, bo typowej instalacji nie ma). Ale to tak abstrahujac troche :) > Jak pisałem dane tworzone kodem scaffolda są potem wyświetlane > poprawnie. Problem mam z pokazywaniem komunikatów z wnętrza kodu. > > validates_presence_of(:name, :message => "ąłóśćżńź") > > Powyższe generuje na stronie śmieci. Przeglądarka twierdzi, że strona > jest przesyłana w UTF-8. Eclipse zapisuje kod Rubiego w Windows-1250. > Potrzebne jest tu jakieś przekodowanie tekstu do Unikodu. Niestety nie > bardzo wiem co z tym zrobić. > > Myślałem już nawet o całkowitym przejściu na Windows-1250 (wraz z > generowanymi HTMLami) ale wolałbym zostać przy Unikodzie. Problem lezy po stronie Eclipse'a - zmien kodowanie klikajac na odpowiedni skrypt prawym, wybierajac Properties i tam na pewno zauwazysz kodowanie. Oczywiście jest to rozwiazanie obrzydliwe, bo za kazdym razem bedziesz musial ustawiac kodowania przy nowych plikach. Gdzies w konfiguracji powinno byc ustawianie domyslnego kodowania (poszukalem troche: Window -> Preferences -> General -> Workspace) Pozdrawiam Jachu
Re: Rails a polskie litery
Author: Marcin Wieczorek
Date: Wed, 23 Aug 2006 10:59
Date: Wed, 23 Aug 2006 10:59
20 lines
1538 bytes
1538 bytes
Marcin Wieczorek napisał(a):
> validates_presence_of(:name, :message => "ąłóśćżńź")
>
> Powyższe generuje na stronie śmieci. Przeglądarka twierdzi, że strona
> jest przesyłana w UTF-8. Eclipse zapisuje kod Rubiego w Windows-1250.
> Potrzebne jest tu jakieś przekodowanie tekstu do Unikodu. Niestety nie
> bardzo wiem co z tym zrobić.
Próbowałem użyć iconv:
require 'iconv'
mesg=Iconv.new("WINDOWS-1250","UTF-8").iconv("ęóął")
validates_presence_of(:name, :message => mesg)
Niestety jeśli w konwertowanym tekście pojawią się polskie znaki to
zamiast widoku dostaję błąd:
Iconv::IllegalSequence in TeachersController#create
"\352\363\271\263"
Re: Rails a polskie litery
Author: Marcin Wieczorek
Date: Wed, 23 Aug 2006 11:13
Date: Wed, 23 Aug 2006 11:13
10 lines
1460 bytes
1460 bytes
janu napisał(a): > Problem lezy po stronie Eclipse'a - zmien kodowanie klikajac na > odpowiedni skrypt prawym, wybierajac Properties i tam na pewno > zauwazysz kodowanie. Oczywiście jest to rozwiazanie obrzydliwe, bo za > kazdym razem bedziesz musial ustawiac kodowania przy nowych plikach. > Gdzies w konfiguracji powinno byc ustawianie domyslnego kodowania > (poszukalem troche: Window -> Preferences -> General -> Workspace) Dzięki, to pomogło. Szukałem przekodowania po menu ale na wierzchu było tylko dla plików rhtml.
Re: Rails a polskie litery
Author: Jaroslaw Zabiello
Date: Wed, 23 Aug 2006 12:44
Date: Wed, 23 Aug 2006 12:44
18 lines
1485 bytes
1485 bytes
On Wed, 23 Aug 2006 12:42:06 +0200, Marcin Wieczorek wrote: > Eclipse zapisuje kod Rubiego w Windows-1250. Tu jest problem. Można to zmienić globalnie dla wszystkich plików w ramach projektu zamiast się chrzanić z każdym skryptem. 1. W Eclipse/RadRails wpierw pozamykaj wszystkie pliki. 2. Kliknij prawym przyciskiem myszki na projekt, potem Properties. W "Text file encoding" kliknij na Other, przewiń na koniec i wybierz UTF-8. Wciśnij OK. Od tej każdy plik w tym projekcie będzie otwierany i zapsywany w utf-8. -- Jarosław Zabiełło http://blog.zabiello.com
Re: Rails a polskie litery
Author: Jaroslaw Zabiello
Date: Wed, 23 Aug 2006 12:46
Date: Wed, 23 Aug 2006 12:46
13 lines
1396 bytes
1396 bytes
On 23 Aug 2006 03:51:41 -0700, janu wrote: > Problem lezy po stronie Eclipse'a - zmien kodowanie klikajac na > odpowiedni skrypt prawym, wybierajac Properties i tam na pewno > zauwazysz kodowanie. Oczywiście jest to rozwiazanie obrzydliwe, bo za > kazdym razem bedziesz musial ustawiac kodowania przy nowych plikach. Nie tak. Zamiast na plikach, wystarczy to ustawić na najwyższym poziomie dla całego projektu. Każdy nowy plik będzie w utf-8. -- Jarosław Zabiełło http://blog.zabiello.com
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads