Xojo Conferences
XDCMay2019MiamiUSA

RealDatabase Encoding Vergleich (Real Studio network user group Deutschland Mailinglist archive)

Back to the thread list
Previous thread: Folderitem.MacVRefNum
Next thread: Text Encoding Mac/Windows


Re: Re: verschiedene Fonts einzelnen Zellen in Listbox zuweisen   -  
  RealDatabase Encoding Vergleich   -   Mike Ott & Nicole Inderbitzin
   Re: RealDatabase Encoding Vergleich   -   Christian Schmitz
    Re: RealDatabase Encoding Vergleich   -   Mike Ott & Nicole Inderbitzin
     Re: RealDatabase Encoding Vergleich   -   Stefan Sicurella
     Re: RealDatabase Encoding Vergleich   -   Christian Schmitz
     Re: RealDatabase Encoding Vergleich   -   Michael Koop
      Re: RealDatabase Encoding Vergleich   -   Mike Ott & Nicole Inderbitzin
      Re: RealDatabase Encoding Vergleich   -   Mike Ott & Nicole Inderbitzin
       Re: RealDatabase Encoding Vergleich   -   Michael Koop

RealDatabase Encoding Vergleich
Date: 09.08.03 00:19 (Sat, 09 Aug 2003 01:19:45 +0200)
From: Mike Ott & Nicole Inderbitzin
Kleine Fragen im Anschluss:

- RB 5.2 speichert doch mit der RealDatabase im UTF8 Encoding, oder?

- Wie speicherte die RealDatabase mit RB 4.5? MacRoman?

- Wie könnte man gegebenenfalls ein "altes" MacRoman-Real-Datenbankfile nach
UTF8 umwandeln, so dass es mit RB 5 wieder lesbar ist?


Gruss Mike

- - - - - - - - - -
For list commands, send "Help" in the body of a message to
<<email address removed>>

Re: RealDatabase Encoding Vergleich
Date: 09.08.03 17:06 (Sat, 9 Aug 2003 18:06:10 +0200)
From: Christian Schmitz
Mike Ott & Nicole Inderbitzin <<email address removed>> wrote:

> Kleine Fragen im Anschluss:
>
>
> - RB 5.2 speichert doch mit der RealDatabase im UTF8 Encoding, oder?

Ich hab nirgends gelesen, wie's definiert ist.

> - Wie speicherte die RealDatabase mit RB 4.5? MacRoman?

Mit System Encoding.

> - Wie könnte man gegebenenfalls ein "altes" MacRoman-Real-Datenbankfile
> nach UTF8 umwandeln, so dass es mit RB 5 wieder lesbar ist?

Ich würde ein Integerfeld nehmen und dort das Encoding speichern.

z.B. mache ich das mit GetEncodingOfStringMBS and
SetEncodingOfStringMBS.

Mfg
Christian

--

Re: RealDatabase Encoding Vergleich
Date: 10.08.03 14:58 (Sun, 10 Aug 2003 15:58:10 +0200)
From: Mike Ott & Nicole Inderbitzin
Danke, Christian, schon mal für die Antwort!

>> - RB 5.2 speichert doch mit der RealDatabase im UTF8 Encoding, oder?
>
> Ich hab nirgends gelesen, wie's definiert ist.
Was heisst das? Irgendwie muss die RealDB das doch abspeichern? Ist das
nicht ab RB 5 in jedem Fall UTF8?
Wie könnte ich das definitiv herausfinden? Wäre doch toll, das zu wissen,
oder?

>> - Wie speicherte die RealDatabase mit RB 4.5? MacRoman?
>
> Mit System Encoding.
Auch bei win-Compilaten? Was wäre denn dort SysemEncoding?

>> - Wie könnte man gegebenenfalls ein "altes" MacRoman-Real-Datenbankfile
>> nach UTF8 umwandeln, so dass es mit RB 5 wieder lesbar ist?
>
> Ich würde ein Integerfeld nehmen und dort das Encoding speichern.
Ich meine das nicht so. Beispiel: Meine DB, die unter RB 4.5.3 erzeugt
wurde, speichert mit SystemEncoding (was auch immer das ist...).
Wenn ich die DB nun mit RB 5 öffne, stimmen die Umlaute nicht.
Deshalb sollte ich die Daten mit RB 5 aus der alten DB mit DefineEncoding
richtig einlesen und dann neu abspeichern (dann wird¹s wohl UTF8).
Oder gibt es einen direkteren Weg?

Gruss Mike

- - - - - - - - - -
For list commands, send "Help" in the body of a message to
<<email address removed>>

Re: RealDatabase Encoding Vergleich
Date: 10.08.03 15:39 (Sun, 10 Aug 2003 16:39:51 +0200)
From: Stefan Sicurella
>>
> Ich meine das nicht so. Beispiel: Meine DB, die unter RB 4.5.3 erzeugt
> wurde, speichert mit SystemEncoding (was auch immer das ist...).
> Wenn ich die DB nun mit RB 5 öffne, stimmen die Umlaute nicht.
> Deshalb sollte ich die Daten mit RB 5 aus der alten DB mit
> DefineEncoding
> richtig einlesen und dann neu abspeichern (dann wird’s wohl UTF8).
> Oder gibt es einen direkteren Weg?
>

Nein, es gibt nur den Weg mit dem DefineEncoding und RB <5 hat
normalerweise MacRoman benutzt.

RB 5 benutzt, wenn du nichts anderes erzwingst mit convertencoding,
UTF8, das ist so!

Gruß

Stefan

- - - - - - - - - -
For list commands, send "Help" in the body of a message to
<<email address removed>>

Re: RealDatabase Encoding Vergleich
Date: 10.08.03 16:04 (Sun, 10 Aug 2003 17:04:05 +0200)
From: Christian Schmitz
Mike Ott & Nicole Inderbitzin <<email address removed>> wrote:

> Was heisst das? Irgendwie muss die RealDB das doch abspeichern? Ist das
> nicht ab RB 5 in jedem Fall UTF8?

Müssten die dafür das Datenbankformat nicht ändern?

> Wie könnte ich das definitiv herausfinden? Wäre doch toll, das zu wissen,
> oder?

Schreib einen String rein mit Windows Latin Encoding auf dem Mac und
überprüf, ob die Umlaute überleben, wenn du's wieder ausliesst.

> >> - Wie speicherte die RealDatabase mit RB 4.5? MacRoman?
> >
> > Mit System Encoding.
> Auch bei win-Compilaten? Was wäre denn dort SysemEncoding?

ANSI.

> > Ich würde ein Integerfeld nehmen und dort das Encoding speichern.
> Ich meine das nicht so. Beispiel: Meine DB, die unter RB 4.5.3 erzeugt
> wurde, speichert mit SystemEncoding (was auch immer das ist...).
> Wenn ich die DB nun mit RB 5 öffne, stimmen die Umlaute nicht.
> Deshalb sollte ich die Daten mit RB 5 aus der alten DB mit DefineEncoding
> richtig einlesen und dann neu abspeichern (dann wird's wohl UTF8).
> Oder gibt es einen direkteren Weg?

Du kannst mit DefineEncoding das Encoding definieren, aber du änderst
nicht den String.
Füg eine Spalte in der Tabelle hinzu mit dem Encodingwert.
Hat die Zelle keinen Wert, ist es MacRoman und ansonsten was drinsteht.

Mfg
Christian

--
Four thou

Re: RealDatabase Encoding Vergleich
Date: 10.08.03 16:10 (Sun, 10 Aug 2003 17:10:19 +0200)
From: Michael Koop

Am ... schrieb Mike Ott & Nicole Inderbitzin:

> Kleine Fragen im Anschluss:
> - RB 5.2 speichert doch mit der RealDatabase im UTF8 Encoding, oder?
> - Wie speicherte die RealDatabase mit RB 4.5? MacRoman?
> - Wie könnte man gegebenenfalls ein "altes"
> MacRoman-Real-Datenbankfile nach
> UTF8 umwandeln, so dass es mit RB 5 wieder lesbar ist?
> Gruss Mike

Hallo Mike,

habe mich in den letzten Wochen um eine Lösung eines Datenbankproblems
bemüht,
was gerade deine obigen Fragen betrifft.
Hatte eine alte Realdatabase mit Rb 4 erstellt und Daten
hineingeschrieben, musste aber nach dem
Wechsel zu Rb 5 feststellen, dass das Encoding anderes gehandhabt wird.

Bei mir klappt es nun mit folgender Lösung:
Jeder String, der in die Realdatabase geschrieben wird, durchläuft die
Methode1.
Jeder String, der aus der Realdatabase gelsen wird, durchläuft die
Methode2.

Methode1 (zum in die Datenbank schreiben):
UNICODEzuASCII (char as string) as string
return char.ConvertEncoding(Encodings.MacRoman)

Methode2 (zum aus der Datenbank lesen):
TextEncodet (char as string) as string
Dim TE as TextEncoding
TE=Encoding(char)
if TE<>Nil then
return DefineEncoding(char,TE)
else
return char
end if

Hoffe, dir damit etwas weiterhelfen zu können.

Gruß
Michael

Re: RealDatabase Encoding Vergleich
Date: 10.08.03 17:05 (Sun, 10 Aug 2003 18:05:34 +0200)
From: Mike Ott & Nicole Inderbitzin
Danke für eure Antworten!

Probier ich doch glatt aus :-)

Gruss Mike

- - - - - - - - - -
For list commands, send "Help" in the body of a message to
<<email address removed>>

Re: RealDatabase Encoding Vergleich
Date: 11.08.03 20:45 (Mon, 11 Aug 2003 21:45:13 +0200)
From: Mike Ott & Nicole Inderbitzin
Hallo Michael

Ich probiere gerade deine Methoden aus.
> Methode1 (zum in die Datenbank schreiben):
> UNICODEzuASCII (char as string) as string
> return char.ConvertEncoding(Encodings.MacRoman)
Statt MacRoman nehme ich UTF8. Das geht automatisch, auch ohne Methode1.

> Methode2 (zum aus der Datenbank lesen):
> TextEncodet (char as string) as string
> Dim TE as TextEncoding
> TE=Encoding(char)
> if TE<>Nil then
> return DefineEncoding(char,TE)
> else
Msgbox "TE = nil" <-- neue Programmzeile
> return char
> end if

Methode2 gibt immer TE = nil zurück, wenn ich einen String aus einem
RealDB.Varchar-Field übergebe. Das heisst, das Encoding wird nicht erkannt,
entsprechend wird der Text z.B. Im Editfield falsch angezeigt.
Klappt bei dir Methode2? Schreib mal eine Msgbox-Meldung, damit du siehst,
wann TE = nil wird.

Bin gespannt auf deine Antwort

Gruss
Mike

- - - - - - - - - -
For list commands, send "Help" in the body of a message to
<<email address removed>>

Re: RealDatabase Encoding Vergleich
Date: 15.08.03 10:08 (Fri, 15 Aug 2003 11:08:58 +0200)
From: Michael Koop

Am Montag, 11.08.03 um 21:45 Uhr schrieb Mike Ott & Nicole Inderbitzin:

> Hallo Michael
>
> Ich probiere gerade deine Methoden aus.
>> Methode1 (zum in die Datenbank schreiben):
>> UNICODEzuASCII (char as string) as string
>> return char.ConvertEncoding(Encodings.MacRoman)
> Statt MacRoman nehme ich UTF8. Das geht automatisch, auch ohne
> Methode1.
>
>> Methode2 (zum aus der Datenbank lesen):
>> TextEncodet (char as string) as string
>> Dim TE as TextEncoding
>> TE=Encoding(char)
>> if TE<>Nil then
>> return DefineEncoding(char,TE)
>> else
> Msgbox "TE = nil" <-- neue Programmzeile
>> return char
>> end if
>
> Methode2 gibt immer TE = nil zurück, wenn ich einen String aus einem
> RealDB.Varchar-Field übergebe. Das heisst, das Encoding wird nicht
> erkannt,
> entsprechend wird der Text z.B. Im Editfield falsch angezeigt.
> Klappt bei dir Methode2? Schreib mal eine Msgbox-Meldung, damit du
> siehst,
> wann TE = nil wird.
>
> Bin gespannt auf deine Antwort
>
> Gruss
> Mike

Hallo Mike,

die Methode2 greift auf diverse Stellen des Programmcodes und sie
funktioniert.

Hab die msgbox an einer zentralen Stelle eingesetzt. Dort haben leere
Felder bei Datenbankabfragen immer ein Textencoding (US-ASCII),
beschriebene Felder nicht immer.

Gruß
Michael

- - - - - - - - - -
For list commands, send "Help" in the body of a message to
<<email address removed>>