🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

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
#149
Author: Marcin Wieczorek
Date: Wed, 23 Aug 2006 09:54
14 lines
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
#151
Author: Jaroslaw Zabiello
Date: Wed, 23 Aug 2006 09:57
23 lines
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
#150
Author: Marcin Wieczorek
Date: Wed, 23 Aug 2006 10:42
37 lines
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
#152
Author: janu
Date: Wed, 23 Aug 2006 10:51
32 lines
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
#155
Author: Marcin Wieczorek
Date: Wed, 23 Aug 2006 10:59
20 lines
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
#153
Author: Marcin Wieczorek
Date: Wed, 23 Aug 2006 11:13
10 lines
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
#156
Author: Jaroslaw Zabiello
Date: Wed, 23 Aug 2006 12:44
18 lines
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
#154
Author: Jaroslaw Zabiello
Date: Wed, 23 Aug 2006 12:46
13 lines
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