🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.ruby
Article #74

rails - mysql - problem z polskimi znakami

#74
From: Pawel Chmielewski
Date: Wed, 26 Jul 2006 23:42
51 lines
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
Technical Details
Message-ID: <ea8ukk$o6p$1@news.onet.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!news.onet.pl!not-for-mail

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!news.onet.pl!not-for-mail
From: Pawel Chmielewski <dzemchmielewski@gazeta.pl>
Newsgroups: pl.comp.lang.ruby
Subject: rails - mysql - problem z polskimi znakami
Date: Thu, 27 Jul 2006 01:42:12 +0200
Organization: Onet.pl
Lines: 51
Message-ID: <ea8ukk$o6p$1@news.onet.pl>
NNTP-Posting-Host: dynamic-86-111-99-181.tvk.torun.pl
Mime-Version: 1.0
X-Trace: news.onet.pl 1153957332 24793 86.111.99.181 (26 Jul 2006 23:42:12 GMT)
X-Complaints-To: usenet@news.onet.pl
NNTP-Posting-Date: Wed, 26 Jul 2006 23:42:12 +0000 (UTC)
X-Sender: fBd2Y1bl6nHWKM6loOXZZ6CC299gW0rQbZAsTRi0Hd4=
User-Agent: KNode/0.10.1
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit