Ich habe eine DB erstellt, mit 'SQLAdmin' von SQLite, mit einer Table, die die Felder 'nr' und 'name' enthält.
Dabei habe ich in 'Name' eingegeben: 'ÄÖÜßäöü'.
Jetzt der Zugriff auf diese Daten:
Mit allen SQLite-Tools (SQLAdmin, SQLiteToolbox, SQLiteSpy und SQLite-Kommandozeile)
kommen die Umlaute korrekt!
Nur beim Zugriff mit dem mitgelieferten PureBasic-Editor und auch mit 'jaPBe' funktioniert es nicht - die Umlaute werden nicht bzw. falsch dargestellt: aus 'Müller' wird 'M'ller' usw.
An was kann das liegen?
Umlaute beim Zugriff auf SQLite3
- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
Re: Umlaute beim Zugriff auf SQLite3
Ich weiß nicht, ob das bereits gefixed wurde, aber das Problem betrifft nicht alle PB-Versionen.
Teste also mal mit der aktuellen Version, einer älteren oder Compiliere im Unicode-Modus.
Teste also mal mit der aktuellen Version, einer älteren oder Compiliere im Unicode-Modus.
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Re: Umlaute beim Zugriff auf SQLite3
Vielen Dank für die rasche Antwort.
Das, mit dem Compilieren im Unicode-Modus hört sich gut an.
...
Habe ich jetzt ausprobiert, mit folgendem Resultat:
Das Problem trat auf mit PureBasic 5.21. Jetzt habe ich es ausprobiert
mit Version 5.11 - hatte dasselbe negative Resultat.
Im 'Normalmode' ausgeführt erscheinen die Umlaute als Asc(63) und im Unicode
ausgeführt als Asc(65533), und zwar für alle Umlaute ä,ö,ü,Ä,Ö,Ü !
Mache ich denselben Versuch mit einem Delphi-Prog, da funktioniert es !
Verwendet PureBasic auch die 'SQLite3.dll' ?
Das, mit dem Compilieren im Unicode-Modus hört sich gut an.
...
Habe ich jetzt ausprobiert, mit folgendem Resultat:
Das Problem trat auf mit PureBasic 5.21. Jetzt habe ich es ausprobiert
mit Version 5.11 - hatte dasselbe negative Resultat.
Im 'Normalmode' ausgeführt erscheinen die Umlaute als Asc(63) und im Unicode
ausgeführt als Asc(65533), und zwar für alle Umlaute ä,ö,ü,Ä,Ö,Ü !
Mache ich denselben Versuch mit einem Delphi-Prog, da funktioniert es !
Verwendet PureBasic auch die 'SQLite3.dll' ?
Re: Umlaute beim Zugriff auf SQLite3
Halo pe-gdb
Seit PB Version 5.11
- Aktualisiert: SQLite Version (3.7.15.2)
Walter
Seit PB Version 5.11
- Aktualisiert: SQLite Version (3.7.15.2)
Walter
Lesen bei schlechten Lichtverhältnissen ist nicht schlecht für die Augen, sondern trainiert sie sogar.
Linux Ubuntu Mate 18.04
PB 5.71
Intel i5
Linux Ubuntu Mate 18.04
PB 5.71
Intel i5
- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
Re: Umlaute beim Zugriff auf SQLite3
Das ganze hat nichts mit der verwendeten SQLite Version zu tun.
SQLite nutzt im normalfalle immer UTF-8. PB speichert aber in einigen
Versionen in ASCII und Unicode, was verkehrt ist. Fred wollte das wieder
korrigieren, finde den Beitrag aber im eng. Forum nicht.
Es macht keinen Sinn, wenn PB mal Ascii und mal Unicode verwendet, die
Datenbank sollte möglichst immer dieselben Ergebnisse liefern, wenn auch
unter ASCII Kompilierung einige wenige Zeichen verloren gehen.
Ich hab aber jetzt keine Zeit und Lust mir ein Testprogramm zu schreiben
Gruß
Thomas
//edit
hier: http://www.purebasic.fr/english/viewtop ... 79#p431679
ist der Bugreport im engl. Forum!
Wichtig: Der Sourcecode in der IDE muß auch in UTF-8 gespeichert werden! Es gibt hier ja noch ein paar,
die ihre Sourcen immer noch in ASCII abspeichern und sich wundern, warum Unicode usw. nicht richtig
funktionieren.
Der Bug scheint aber noch nicht gefixed zu sein, nur im Unicode-Modus (+ UTF-8 -Source) kommen diese
Sonderzeichen korrekt.
SQLite nutzt im normalfalle immer UTF-8. PB speichert aber in einigen
Versionen in ASCII und Unicode, was verkehrt ist. Fred wollte das wieder
korrigieren, finde den Beitrag aber im eng. Forum nicht.
Es macht keinen Sinn, wenn PB mal Ascii und mal Unicode verwendet, die
Datenbank sollte möglichst immer dieselben Ergebnisse liefern, wenn auch
unter ASCII Kompilierung einige wenige Zeichen verloren gehen.
Ich hab aber jetzt keine Zeit und Lust mir ein Testprogramm zu schreiben

Gruß
Thomas
//edit
hier: http://www.purebasic.fr/english/viewtop ... 79#p431679
ist der Bugreport im engl. Forum!
Wichtig: Der Sourcecode in der IDE muß auch in UTF-8 gespeichert werden! Es gibt hier ja noch ein paar,
die ihre Sourcen immer noch in ASCII abspeichern und sich wundern, warum Unicode usw. nicht richtig
funktionieren.
Der Bug scheint aber noch nicht gefixed zu sein, nur im Unicode-Modus (+ UTF-8 -Source) kommen diese
Sonderzeichen korrekt.
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Re: Umlaute beim Zugriff auf SQLite3
das hilft (nach jeder Leseoperation):
Code: Alles auswählen
Procedure.s SQL_Umlaute(Text$) ;- SQL-Umlaut-Fehler korrigieren
Protected Such$, Pos
Protected Korr$ = "Ä Ä Ã– Ö Ãœ Ü Ã¤ ä ö ö ü ü ß ß" ;jeweils Fehler- und Korrektur-Zeichenkette
For Pos=1 To 13 Step 2
Such$ = StringField(Korr$,Pos," ")
Repl$ = StringField(Korr$,Pos+1," ")
Text$ = ReplaceString(Text$, Such$, Repl$)
Next
ProcedureReturn Text$
EndProcedure


Re: Umlaute beim Zugriff auf SQLite3
vielen Dank für Eure Mühen und Antworten.
Es ist tatsächlich so, daß PB für die Umlaute Unicode verwendet,
ansonsten ASCII.
Es ist tatsächlich so, daß PB für die Umlaute Unicode verwendet,
ansonsten ASCII.
- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
Re: Umlaute beim Zugriff auf SQLite3
Leider nicht ganz korrekt. PB verwendet UTF-8 und liest im Unicode-Compiler-Mode auch UTF-8 zurück.pe-gdb hat geschrieben:Es ist tatsächlich so, daß PB für die Umlaute Unicode verwendet,
ansonsten ASCII.
Aber im ASCII Mode, wird nicht als UTF-8 sondern als ASCII gelesen. Somit verschwinden nicht nur
alle reinen Unicode-Zeichen, was unvermeidbar ist, sondern auch diejenigen, die in beiden Zeichencodierungen
vorhanden sind, also Umlaute, Eurozeichen usw.
Bis das gefixed ist, würde ich meine Exe in Unicode erstellen, es gibt sowieso keinen Grund noch ASCII zu
nutzen und das Problem ist gelöst. Aber nicht vergessen, die IDE auch auf UTF-8 umzustellen, sonst macht
Unicode nicht unbedingt Sinn

PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
