rubyforen.de
http://forum.ruby-portal.de/

Japanische Schriftzeichen aus einer MySQL Datenbank lesen
http://forum.ruby-portal.de/viewtopic.php?f=14&t=1125
Seite 1 von 1

Autor:  Joscny [ 04 Nov 2005, 03:25 ]
Betreff des Beitrags:  Japanische Schriftzeichen aus einer MySQL Datenbank lesen

Hallo !
habe schon seit laegerem folgenes Problem:
Ich lese mittels eines Java Programms japanisches Dateipfade in eine Datenbank ein. Dafuer verwendete ich in der Datenbank verschiedene Kollationen, wie z. B. utf8, ujis die diese Schritzeichen speichern koennen. Um sicher zu gehen, das die richtige Kollation von Java verwendet wird, benutze ich die "characterEncoding=UTF-8" Variable beim Connect zur Datenbank. Die Pfade werden korrekt im richtigen Zeichenformat eingelesen, und ich kann auch ueber PHPmyAdmin die korrekten Pfade lesen. Somit sollte auf Java Seite alles funktionieren. Moechte ich jetzt aber per RubyOnRails die Pfade auslesen, bekomme ich "????", egal in welchem Encoding Format die Daten in der DB gespeichert sind. Nicht japanische Zeichen werden jedoch korrekt ausgegeben. Gib es in Ruby vielleicht irgendetwas, mit dem ich beim Auslesen der DB das characterEncoding anpassen kann? Oder das vielleicht der Unicode utf8 richtig ausgelesen wird ? Das Tutorial auf Wiki zu UTF8 hab ich bereits ohne Erfolg ausprobiert.

Ueber Hilfe wurde ich mich sehr freuen.

Autor:  DanielBovensiepen [ 04 Nov 2005, 12:50 ]
Betreff des Beitrags: 

Ich glaube nicht dass das auslesen Probleme macht. Vielmehr ist die Anzeige bei mir immer der störende Faktor gewesen. Hast du den Contenttype von deinen Dokumenten bereits gesetzt?



1
2
3
4
5
6
7
8
9
class ApplicationController < ActionController::Base 
before_filter :set_default_content_type
def set_content_type(content_type)
@response.headers["Content-Type"] = content_type
end
def set_default_content_type
set_content_type("text/html; charset=utf-8")
end
end




der
Daniel

Autor:  Joscny [ 07 Nov 2005, 03:04 ]
Betreff des Beitrags: 

Hallo Daniel,
vielen Dank fuer deine Antwort.

leider hatte ich keine Erfolg. Der erzeugte Quellcode sie ungefaehr so aus:

"class="StilNormal1">RFID??????????????.pdf"

Anstatt der Fragezeichen sollten japanische schriftzeichen erscheinen. Suche ich diesen Dateiname jedoch in PhpMyAdmin, erscheint er korrekt. Alternativ probiert ich auch schon statt Utf-8 "ujis" aus, jedoch mit dem selben Ergebins.

Bin ratlos, ueber weitere Ideen wurde ich mich sehr freuen.
Joschy

Autor:  DanielBovensiepen [ 07 Nov 2005, 11:55 ]
Betreff des Beitrags: 

Ist das globale Datenbank Encoding auch wirklich auf utf8 eingestellt? Eventuell nutzt es ja einen spezialisierten Japanischen Schriftsatz.



der
Daniel

Autor:  Joscny [ 18 Nov 2005, 07:03 ]
Betreff des Beitrags: 

Danke fuer deine Antwort.
In PHPmyAdmin unter Operationen kann ich speziell fuer die Datenbank die Kollation definieren. Diese ist auf utf8_unicode_ci. Genau wie in den anderen DB Feldern auch. Meintest du das mit "globales Encoding ?"

Thx,
Joschy

Autor:  Joscny [ 18 Nov 2005, 07:15 ]
Betreff des Beitrags: 

Nachtrag...
Sobald mit Ruby ein UTF-8 Feld mit japanischen Schriftzeichen beschreibe, erhalte ich beim Auslesen des Feldes mit RUBY die RICHTIGE Darstellung. Jedoch in phpmyAdmin sieht er Code so aus:

ウェブ イメージ ニュース グループ ディレクト

Speichert Ruby vielleicht binaer ab ?

Thx,
Joschy

Autor:  Joscny [ 18 Nov 2005, 07:25 ]
Betreff des Beitrags: 

Habs jetzt endlich gefunden !
Dein Ansatz war richtig, jedoch benutze ich MySQL >4.1 Somit ist folgendes einzutragen:


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
  before_filter :set_charset
before_filter :configure_charsets

def set_charset
@headers["Content-Type"] = "text/html; charset=utf-8"
end

def configure_charsets
@response.headers["Content-Type"] = "text/html; charset=utf-8"

# Set connection charset. MySQL 4.0 doesn't support this so it
# will throw an error, MySQL 4.1 needs this
suppress(ActiveRecord::StatementInvalid) do
ActiveRecord::Base.connection.execute 'SET NAMES UTF8'
end
end

Seite 1 von 1 Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/