Seite 1 von 1

SQLite Unicode Problem

Verfasst: 01.03.2007 00:05
von Orbod
Hi,

Bin neu hier (habe mich heute angemeldet) aber habe mich schon zwei Monate mit PB amüsiert und finde es ganz toll (Prozeduren und kein OOP). Jetzt habe ich folgendes Problem. Ich benutze PB mit SQLite und die interface funktioniert einwandfrei. Aber da das Program Unicode enabled sein soll (den schalster ist auch gesetzt), kriege ich von SQLite eine sonderbare Fehlermeldung, die aus Fragezeigen besteht. Ich denke das das verursacht wird durch die PBOSL lib die aus 2005 ist und vielleicht nicht Unicode enabled compiliert ist.

Stimmt das? Und was macht man dann?

Peter

Verfasst: 01.03.2007 00:13
von ts-soft
Es gibt zur Zeit keine SQLite Userlib mit Unicode Support.

Die vor kurzem upgedatete Version unterstützt das Standard-Format von SQLite, nämlich UTF-8

Den Source laden, einbinden, deine Strings per PokeS nach UTF-8 wandeln
und übergeben.

Wenn Du noch fragen hast, das denke ich mal, stelle sie bitte einfach, bin
nämlich zu Faul hier einen Roman zu schreiben, manches wirste
wahrscheinlich selber rausfinden :wink:

Gruß
Thomas

PS:
Für echten Unicode-Support (UTF-8 sollte reichen) mußte die Proceduren
abändern, so das die auf die Funktion in der DLL mit 16 am ende
verweisen, aber ich denke das wird nicht nötig sein.

Verfasst: 01.03.2007 00:27
von ts-soft
Hier mal eine kleine Procedure um Strings in UTF-8 umzuwandeln, nicht vom
Namen irritieren lassen, das funktioniert auch unter Unicode!

Code: Alles auswählen

Procedure.s AsciiToUTF8(Input$)
  Buffer$ = Space(StringByteLength(Input$, #PB_UTF8))
  PokeS(@Buffer$, Input$, -1, #PB_UTF8)
  ProcedureReturn Buffer$
EndProcedure

Text.s = "Hallo öäüß"

Text_UTF8.s = AsciiToUTF8(Text)

;Debug Text_UTF8; Hallo öäüß im ASCII Modus, ??????? im Unicode Modus

Debug PeekS(@Text_UTF8, -1, #PB_UTF8)