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  [ 11 Beiträge ] 
Autor Nachricht
BeitragVerfasst: 14 Jan 2009, 16:04 
Offline
Interpreter
Benutzeravatar

Registriert: 18 Sep 2008, 22:32
Beiträge: 1821
Wohnort: NRW → UN
Hallo Community,

Seit Neuestem verwende ich WxRuby und stoße jetzt auf die ersten Schwierigkeiten: Ich wollte eigentlich nur ein StaticText-Control mit einem Satz drin erstellen, aber der wurde nicht angezeigt. Nachdem ich das Problem auf die Umlaute reduziert hatte, hab' ich mich ein bisschen schlau gemacht. WxRuby verwende intern UTF-8, zum Konvertieren solle man Iconv benutzen. Das klappt aber irgendwie nicht so ganz:


puts Iconv.iconv("ISO-8859-1", "UTF-8", "��").first



"\344" (Iconv::InvalidCharacter)
Wie soll ich denn konvertieren?

Rubyversion: 1.8.6
Betriebssystem: Windows XP

Vale,
Quintus

_________________
Habe den Mut, dich deines eigenen Verstandes zu bedienen! — Immanuel Kant

Ich bin freischaffender Softwareentwickler und freue mich über jedes neue Projekt. Kontaktinformation auf meiner Website.

Mein Blog | GitHub-Profil | Auf Twitter: @qquintilianus | PGP/GPG-Schlüssel: B1FE 958E D5E8 468E AA20 8F4B F1D8 799F BCC8 BC4F


Nach oben
 Profil  
 
BeitragVerfasst: 15 Jan 2009, 11:26 
Offline
Interpreter

Registriert: 15 Mär 2005, 19:26
Beiträge: 6142
Wohnort: Karlsruhe
Quintus hat geschrieben:
WxRuby verwendet intern UTF-8, zum Konvertieren solle man Iconv benutzen. Das klappt aber irgendwie nicht so ganz:


puts Iconv.iconv("ISO-8859-1", "UTF-8", "��").first



"\344" (Iconv::InvalidCharacter)
Wie soll ich denn konvertieren?

Rubyversion: 1.8.6
Betriebssystem: Windows XP

Ich habe mein System jetzt leider nicht dabei (sitze hier in der Kliniuk an einer Bezahlstation), weiss also den Namen nicht ganz genau.

Bei Windows solltest Du nicht ISO-8859-x benutzen, sondern eines der CPnn (siehe http://www.gnu.org/software/libiconv/) oder auch windows-1250 (siehe http://forum.ruby-portal.de/viewtopic.php?t=5552).

_________________
WoNáDo.set_state!(:retired)


Nach oben
 Profil  
 
 Betreff des Beitrags:
BeitragVerfasst: 15 Jan 2009, 14:57 
Offline
Interpreter
Benutzeravatar

Registriert: 18 Sep 2008, 22:32
Beiträge: 1821
Wohnort: NRW → UN
Danke, mit windows-1250 hat's funktioniert. Habe wohl ausserdem zwei Parameter durcheinander geworfen :)


puts Iconv.iconv("UTF-8", "windows-1250", "��").first
läuft jetzt.

Vale,
Quintus

_________________
Habe den Mut, dich deines eigenen Verstandes zu bedienen! — Immanuel Kant

Ich bin freischaffender Softwareentwickler und freue mich über jedes neue Projekt. Kontaktinformation auf meiner Website.

Mein Blog | GitHub-Profil | Auf Twitter: @qquintilianus | PGP/GPG-Schlüssel: B1FE 958E D5E8 468E AA20 8F4B F1D8 799F BCC8 BC4F


Nach oben
 Profil  
 
 Betreff des Beitrags:
BeitragVerfasst: 02 Apr 2009, 23:19 
Offline
Meister

Registriert: 11 Jun 2006, 20:32
Beiträge: 249
danke jungs.


Nach oben
 Profil  
 
BeitragVerfasst: 06 Aug 2011, 10:54 
Offline
Novize
Benutzeravatar

Registriert: 04 Okt 2010, 09:44
Beiträge: 19
Dank dieses Threads konnte ich selbiges Problem lösen. :D


Nach oben
 Profil  
 
BeitragVerfasst: 10 Aug 2011, 13:33 
Offline
Interpreter
Benutzeravatar

Registriert: 18 Sep 2008, 22:32
Beiträge: 1821
Wohnort: NRW → UN
Nur ein kleiner Hinweis: Mit Ruby 1.9 ist das hinfällig. Schreibe deine Programme mit


#Encoding: UTF-8
am Anfang und stelle sicher, dass dein Editor UTF-8 abspeichert. Brauchst du eine andere Kodierung: String#encode ist dein Freund. Und wxRuby selbst läuft problemlos mit Ruby 1.9.

Vale,
Quintus

_________________
Habe den Mut, dich deines eigenen Verstandes zu bedienen! — Immanuel Kant

Ich bin freischaffender Softwareentwickler und freue mich über jedes neue Projekt. Kontaktinformation auf meiner Website.

Mein Blog | GitHub-Profil | Auf Twitter: @qquintilianus | PGP/GPG-Schlüssel: B1FE 958E D5E8 468E AA20 8F4B F1D8 799F BCC8 BC4F


Nach oben
 Profil  
 
BeitragVerfasst: 17 Aug 2011, 10:52 
Offline
Novize
Benutzeravatar

Registriert: 04 Okt 2010, 09:44
Beiträge: 19
Danke für den Hinweis,

aber da bei mir sowohl die Ruby-Skripte Files als auch Datenbank auf ISO-8859-1 sind, kann ich auf diesen Schritt leider nicht verzichten. :D

Statt UTF-8 steht in all meinen Skripts ISO-8859-1 ...


Nach oben
 Profil  
 
BeitragVerfasst: 17 Aug 2011, 14:11 
Offline
Interpreter
Benutzeravatar

Registriert: 18 Sep 2008, 22:32
Beiträge: 1821
Wohnort: NRW → UN
Hrrrm, obwohl Iconv mit Ruby 1.9 noch mitgeliefert wird, geschieht dies nur aus Kompatbilitätsgründen. Ruby hat ein hervorragendes eigenes Kodierungssytem:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
��� quintus@ikarus => ~
$ irb
#Working directory: /home/quintus
#PID: 1284
#ruby -v: ruby 1.9.2p290 (2011-07-09 revision 32553) [x86_64-linux]
irb(main):001:0> str = "B��renstark"
=> "B��renstark"
irb(main):002:0> str.encoding
=> #<Encoding:UTF-8>
irb(main):003:0> str2 = str.encode("ISO-8859-1")
=> "B\xE4renstark"
irb(main):004:0> str2.encoding
=> #<Encoding:ISO-8859-1>
irb(main):005:0> str.encoding
=> #<Encoding:UTF-8>
irb(main):006:0> str.encode!("ISO-8859-1")
=> "B\xE4renstark"
irb(main):007:0> str.encoding
=> #<Encoding:ISO-8859-1>
irb(main):008:0> str.encode!("UTF-8")
=> "B��renstark"
irb(main):009:0> str.encoding
=> #<Encoding:UTF-8>
irb(main):010:0> str.encode("Shift_JIS")
Encoding::UndefinedConversionError: U+00E4 from UTF-8 to Shift_JIS
from (irb):10:in `encode'
from (irb):10
from /opt/rubies/ruby-1.9.2-p290/bin/irb:12:in
`
<main>'
irb(main):011:0>


Vale,
Quintus

_________________
Habe den Mut, dich deines eigenen Verstandes zu bedienen! — Immanuel Kant

Ich bin freischaffender Softwareentwickler und freue mich über jedes neue Projekt. Kontaktinformation auf meiner Website.

Mein Blog | GitHub-Profil | Auf Twitter: @qquintilianus | PGP/GPG-Schlüssel: B1FE 958E D5E8 468E AA20 8F4B F1D8 799F BCC8 BC4F


Nach oben
 Profil  
 
BeitragVerfasst: 19 Aug 2011, 09:04 
Offline
Novize
Benutzeravatar

Registriert: 04 Okt 2010, 09:44
Beiträge: 19
@Quintus

String.encode("UTF-8") war auch mein bevorzugter Ansatz gewesen, hat bei mir aber leider nicht zum Ziel geführt - die Strings konnten in der WxRuby-GUI nicht angezeigt werden.

Erst mit der oben beschriebenen iconv-Variante kam ich zum Ziel ...


Nach oben
 Profil  
 
BeitragVerfasst: 19 Aug 2011, 09:41 
Offline
Interpreter
Benutzeravatar

Registriert: 18 Sep 2008, 22:32
Beiträge: 1821
Wohnort: NRW → UN
Joker hat geschrieben:
String.encode("UTF-8") war auch mein bevorzugter Ansatz gewesen, hat bei mir aber leider nicht zum Ziel geführt - die Strings konnten in der WxRuby-GUI nicht angezeigt werden.
Kannst du mal ein Beispiel posten? String#encode und Iconv machen nämlich exakt dasselbe[1] (nur hat Iconv ein anderes Interface). Und du bist dir sicher, dass es nicht daran liegt, dass du #encode statt #encode! verwendet hast?

Vale,
Quintus

[1] Mit der Ausnahme von TRANSLIT, d.h. Iconv gibt dir die Möglichkeit bei nicht kompatiblen Umkodierungen die Buchstaben zu ändern, d.h. wenn du z.B. von UTF-8 nach ASCII konvertierst, kann Iconv aus Bärenstark das ASCII-kompatible B"arenstark machen.

_________________
Habe den Mut, dich deines eigenen Verstandes zu bedienen! — Immanuel Kant

Ich bin freischaffender Softwareentwickler und freue mich über jedes neue Projekt. Kontaktinformation auf meiner Website.

Mein Blog | GitHub-Profil | Auf Twitter: @qquintilianus | PGP/GPG-Schlüssel: B1FE 958E D5E8 468E AA20 8F4B F1D8 799F BCC8 BC4F


Nach oben
 Profil  
 
BeitragVerfasst: 19 Aug 2011, 11:29 
Offline
Novize
Benutzeravatar

Registriert: 04 Okt 2010, 09:44
Beiträge: 19
Sicher ist leider nur der Tod ... :roll:

Werde mir die Sache heute Abend nocheinmal durchschauen und ggf. das konkrete Beispiel posten.

thx


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

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 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: