Thread View: pl.comp.lang.ruby
5 messages
5 total messages
Started by Pawel Chmielewski
Wed, 26 Jul 2006 23:42
rails - mysql - problem z polskimi znakami
Author: Pawel Chmielewski
Date: Wed, 26 Jul 2006 23:42
Date: Wed, 26 Jul 2006 23:42
51 lines
2431 bytes
2431 bytes
Witam.
Natknąłem się na bardzo dziwaczny problem dotyczący połączenia railsowego
ActiveRecord'a i mysqla. Zacznijmy od czegoś, co działa poprawnie:
====================================
@napis2="z bazy2: "
dbh = Mysql.real_connect("localhost", "someuser", "somepassword",
"somedatabase", 3506)
res = dbh.query("SELECT place FROM helps")
res.each do |row|
row.collect! { |v| v == nil ? "NULL" : v }
@napis2 = @napis2+row[0]+" "
end
res.free
dbh.close
====================================
Ten kawałek kodu, wstawiony do kontrolera i pokazany w view, zwraca
dokładnie to co chcę:
bazy2: Toruń Ostaszewo Włocławek ąęółśźżć
Czyli, że wszystko jest OK - polskie znaki są poprawnie zakodowane w bazie
(UTF-8), driver odczytuje poprawnie, przeglądarka też - meta charset UTF-8
ustawione.
Z drugiej strony, przy następującym wykorzystaniu railsowegp ORMa:
====================================
x=Help.find(:all)
@napis1="z bazy: "
for i in 0..5
@napis1=@napis1+x[i].place+" "
end
@napis1 = @napis1
====================================
dostaję, coś takiego:
z bazy: Toruń Ostaszewo Włocławek ąęółśźżć Bydgoszcz
(celowo koduję ten post w UTF-8, aby było jasne, co widać... Dla tych, co
nie widzą, wyjaśniam, że polskich znaków, w tym napisie powyżej, nie
uświadczysz).
Ot i cały problem. Do głowy przyszło mi tylko to, że coś się musi złego
dziać pomiędzy wyciągnięciem danych z bazy a włożeniem ich do obiektu -
gdzieś tam wewnątrz ActiveRecord.
Niestety, nie znalazłem tego czegoś.
Jakieś pomysły? Ktoś jeszcze się o to potknął?
Pawel
Re: rails - mysql - problem z polskimi znakami
Author: Jaroslaw Zabiello
Date: Thu, 27 Jul 2006 01:25
Date: Thu, 27 Jul 2006 01:25
35 lines
1918 bytes
1918 bytes
On Thu, 27 Jul 2006 01:42:12 +0200, Pawel Chmielewski wrote: > Z drugiej strony, przy następującym wykorzystaniu railsowegp ORMa: > > ==================================== > x=Help.find(:all) > @napis1="z bazy: " > for i in 0..5 > @napis1=@napis1+x[i].place+" " > end > @napis1 = @napis1 > ==================================== > > dostaję, coś takiego: > z bazy: ToruÅ„ Ostaszewo WÅ‚ocÅ‚awek ąęółśźżć Bydgoszcz > > (celowo koduję ten post w UTF-8, aby było jasne, co widać... Dla tych, co > nie widzą, wyjaśniam, że polskich znaków, w tym napisie powyżej, nie > uświadczysz). > > Ot i cały problem. Do głowy przyszło mi tylko to, że coś się musi złego > dziać pomiędzy wyciągnięciem danych z bazy a włożeniem ich do obiektu - > gdzieś tam wewnątrz ActiveRecord. > Niestety, nie znalazłem tego czegoś. > > Jakieś pomysły? Ktoś jeszcze się o to potknął? Jaką bazę używasz? Jako domyślnie są kodowane pola? utf8 czy inaczej? No i cz dodałeś w config/database.yml encoding: utf8 -- Jarosław Zabiełło http://blog.zabiello.com
Re: rails - mysql - problem z polskimi znakami
Author: Pawel Chmielewski
Date: Thu, 27 Jul 2006 09:01
Date: Thu, 27 Jul 2006 09:01
18 lines
1267 bytes
1267 bytes
> Jaką bazę używasz? MySQL 5.0.22. Wszystko na linuksie. > Jako domyślnie są kodowane pola? utf8 czy inaczej? UTF-8. Tak wygląda create: create table helps( place varchar(20) not null )Type=MyISAM CHARACTER SET utf8 COLLATE utf8_general_ci; > No i czy dodałeś w config/database.yml encoding: utf8 Tak. Wydaje mi się, że pierwszy kawałek kodu jasno pokazuje, że z bazą jest wszystko w porządku. Pawel
Re: rails - mysql - problem z polskimi znakami
Author: Jaroslaw Zabiello
Date: Thu, 27 Jul 2006 16:35
Date: Thu, 27 Jul 2006 16:35
11 lines
1194 bytes
1194 bytes
On Thu, 27 Jul 2006 11:01:37 +0200, Pawel Chmielewski wrote: > Wydaje mi się, że pierwszy kawałek kodu jasno pokazuje, że z bazą jest > wszystko w porządku. Spróbuj to sprawdzić z konsoli, a nie na serwerze. Na pewno w configu masz encoding: utf8 a nie utf-8? To drugie nie działa! -- Jarosław Zabiełło http://blog.zabiello.com
Re: rails - mysql - problem z polskimi znakami
Author: Pawel Chmielewski
Date: Thu, 27 Jul 2006 22:55
Date: Thu, 27 Jul 2006 22:55
18 lines
1561 bytes
1561 bytes
Jaroslaw Zabiello wrote: > On Thu, 27 Jul 2006 11:01:37 +0200, Pawel Chmielewski wrote: > >> Wydaje mi się, że pierwszy kawałek kodu jasno pokazuje, że z bazą jest >> wszystko w porządku. > > Spróbuj to sprawdzić z konsoli, a nie na serwerze. Sprawdziłem. Wynik jest dokładnie taki sam. W pierwszym przypadku (wyciągnięcie danych na żywca z drivera) zobaczyłem poprawnie polskie znaki. W drugim (Help.find(:all)) dokładnie to, co opisałem w pierwszym poście. > Na pewno w configu masz > encoding: utf8 a nie utf-8? To drugie nie działa! ;) A już miałem nadzieję... Niestety mam utf8, tak jak być powinno... pawel
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