ACHTUNG. Das ist ein Archiv des alten forum.ruby-portal.de. Die aktuelle Mailingliste gibt es auf lists.ruby-lang.org/pipermail/ruby-de.

NOTICE. This is a ready-only copy of the old forum.ruby-portal.de. You can find the current mailing list at lists.ruby-lang.org/pipermail/ruby-de.

Die Programmiersprache Ruby

Blog|

Forum|

Wiki  


Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]

Ein neues Thema erstellen Auf das Thema antworten  [ 7 Beiträge ] 
Autor Nachricht
BeitragVerfasst: 04 Nov 2005, 03:25 
Offline
Novize

Registriert: 04 Nov 2005, 03:11
Beiträge: 13
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.


Nach oben
 Profil  
 
 Betreff des Beitrags:
BeitragVerfasst: 04 Nov 2005, 12:50 
Offline
Böser Admin
Benutzeravatar

Registriert: 29 Jul 2005, 22:41
Beiträge: 2065
Wohnort: Beijing
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


Nach oben
 Profil  
 
 Betreff des Beitrags:
BeitragVerfasst: 07 Nov 2005, 03:04 
Offline
Novize

Registriert: 04 Nov 2005, 03:11
Beiträge: 13
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


Nach oben
 Profil  
 
 Betreff des Beitrags:
BeitragVerfasst: 07 Nov 2005, 11:55 
Offline
Böser Admin
Benutzeravatar

Registriert: 29 Jul 2005, 22:41
Beiträge: 2065
Wohnort: Beijing
Ist das globale Datenbank Encoding auch wirklich auf utf8 eingestellt? Eventuell nutzt es ja einen spezialisierten Japanischen Schriftsatz.



der
Daniel


Nach oben
 Profil  
 
 Betreff des Beitrags:
BeitragVerfasst: 18 Nov 2005, 07:03 
Offline
Novize

Registriert: 04 Nov 2005, 03:11
Beiträge: 13
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


Nach oben
 Profil  
 
 Betreff des Beitrags:
BeitragVerfasst: 18 Nov 2005, 07:15 
Offline
Novize

Registriert: 04 Nov 2005, 03:11
Beiträge: 13
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


Nach oben
 Profil  
 
 Betreff des Beitrags:
BeitragVerfasst: 18 Nov 2005, 07:25 
Offline
Novize

Registriert: 04 Nov 2005, 03:11
Beiträge: 13
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


Nach oben
 Profil  
 
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 7 Beiträge ] 

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]


Wer ist online?

Mitglieder in diesem Forum: Google [Bot] und 5 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
cron