Bisher liefen alle meine Datenbanken auf postgreSQL (7.4.7) als LATIN-1
ohne Probleme und die Aus- bzw. Eingabe ging über pgAdmin, MS-Access
(mit ODBC) oder auf phpPgAdmin ohne Zeichensatzprobleme.
Jetzt habe ich eine erste Unicode-Datenbank angelegt und versuchsweise
ein paar "sehr fremdsprachige" Daten eingetragen. pgAdmin-III macht auch
anstandslos mit, nicht so jedoch phpPgAdmin: nicht ASCII-Zeichen lassen
sich überhaupt nicht eingeben und die anderweitig eingegebenen werden
bei der Ausgabe entsetzlich verhunzt.
Jetzt bin ich erst mal ratlos, wo ich den Fehler zu suchen habe:
auf der Server- oder auf der Client-Seite? PHP oder postgreSQL?
Der DB-Server läuft unter Linux.
Client-Versuche habe ich sowohl unter Linux als auch Windows-2000
gemacht - mit völlig gleichem Ergebnis.
--
------------------------------------------------------
Eberhard Spittler
[ Spämm geht in's Nirwana, Adresse funktioniert aber ]
Re: phpPgAdmin, UNICODE und postgreSQL
am 25.09.2006 15:31:58 von Helmut Chang
Eberhard Spittler schrieb:
[pgAdmin]
>> 42016|"4"|"ö"|"Ã"
....
[phpPgAdmin]
>> ̦ ̉
....
> Jetzt bin ich erst mal ratlos, wo ich den Fehler zu suchen habe:
>
> auf der Server- oder auf der Client-Seite? PHP oder postgreSQL?
Anhand obigem zu 99,9% auf der Seite von phpPgAdmin. Wenn der
Unicode-Daten aus der DB holt, sollte er dem Browser dann auch sagen,
dass die anzuzeigende Siete in Unicode (UTF-8) ist. Was sagt denn der
Content-Type-Header zur ausgegebenen Seite?
gruss, heli
Re: phpPgAdmin, UNICODE und postgreSQL
am 26.09.2006 07:05:49 von Eberhard Spittler
Helmut Chang schrieb:
> Anhand obigem zu 99,9% auf der Seite von phpPgAdmin. Wenn der
> Unicode-Daten aus der DB holt, sollte er dem Browser dann auch sagen,
> dass die anzuzeigende Siete in Unicode (UTF-8) ist. Was sagt denn der
> Content-Type-Header zur ausgegebenen Seite?
Danke für den Hinweis!
Im äuÃersten Frame heiÃt es:
>
phpPgAdmin
>
>
>
>
Re: phpPgAdmin, UNICODE und postgreSQL
am 26.09.2006 09:19:28 von Helmut Chang
Eberhard Spittler schrieb:
> Im äußersten Frame heißt es:
....
>>
Das gilt (nicht) für diese Datei.
> ... und im Frame mit der Datenanzeige:
....
>>
Das gilt (nicht) für diese Datei.
Soll heißen:
Wenn dann gilt die -Angabe in der Frame Datei und nicht die der
Frameset-Datei. Aber in Wirklichkeit gelten wahrscheinlich beide nicht,
weil der HTTP-Header gilt. Wenn du Firefox benutzt: Kontextmenü im
Datenframe -> Frameinformationen anzeigen.
gruss, heli
Re: phpPgAdmin, UNICODE und postgreSQL
am 27.09.2006 07:29:01 von Eberhard Spittler
Helmut Chang schrieb:
...
> Wenn dann gilt die -Angabe in der Frame Datei und nicht die der
> Frameset-Datei. Aber in Wirklichkeit gelten wahrscheinlich beide nicht,
> weil der HTTP-Header gilt. Wenn du Firefox benutzt: Kontextmenü im
> Datenframe -> Frameinformationen anzeigen.
Firefox verwende ich zum Glück.
Da steht auf der Karteikarte namens "Allgemein" im Fenster "Meta" unter
"Name / Inhalt":
> text/html; charset=UTF-8
Schaut doch eigentlich gut aus.
So langsam frage ich mich, ob ich beim Einrichten des
(Server-)Betriebssystems was falsch gemacht habe. Ursprünglich lief
alles (auch alle Nutzerkennungen) unter ISO-8859-15; vor einigen Monaten
habe ich dann meine Anwenderkennung auf UTF-8 umgestellt. Da gibt es
aber noch einige Ungereimtheiten, daß nicht alles richtig angezeigt
wird. Beispielsweise werden normale deutsche Umlaute im
MidnightCommander verhunzt. Irgendwo habe ich aber gelesen, daß das
nicht auf fehlerhafte Einstellungen zurückzuführen sei, sondern die
relativ alte MC-Version von Debian das "noch nicht" könne.
--
------------------------------------------------------
Eberhard Spittler
[ Spämm geht in's Nirwana, Adresse funktioniert aber ]
Re: phpPgAdmin, UNICODE und postgreSQL
am 27.09.2006 11:36:06 von Helmut Chang
Eberhard Spittler schrieb:
> Da steht auf der Karteikarte namens "Allgemein" im Fenster "Meta" unter
> "Name / Inhalt":
>
>> text/html; charset=UTF-8
>
> Schaut doch eigentlich gut aus.
Nein. Nicht unter "Meta". Kodierung ist hier relevant. Wenn der
Webserver einen Header
"Content-type: text/html; charset=irgendwas-anderes" sendet,
interessiert eben der Inhalt vom -Tag überhaupt nicht.
gruss, heli
Re: phpPgAdmin, UNICODE und postgreSQL
am 27.09.2006 12:17:34 von Eberhard Spittler
Helmut Chang schrieb:
> Nein. Nicht unter "Meta". Kodierung ist hier relevant. Wenn der
> Webserver einen Header
> "Content-type: text/html; charset=irgendwas-anderes" sendet,
> interessiert eben der Inhalt vom -Tag überhaupt nicht.
Entschuldigung - das hatte ich ganz übersehen, daß da noch was steht:
Aber was heißt das jetzt. Daß das ein Fehler ist, leuchtet mir schon
ein, aber ich bin zu doof, den zu interpretieren. :-(
--
------------------------------------------------------
Eberhard Spittler
[ Spämm geht in's Nirwana, Adresse funktioniert aber ]
Re: phpPgAdmin, UNICODE und postgreSQL
am 27.09.2006 12:42:36 von Eberhard Spittler
Helmut Chang schrieb:
> Nein. Nicht unter "Meta". Kodierung ist hier relevant. Wenn der
> Webserver einen Header
> "Content-type: text/html; charset=irgendwas-anderes" sendet,
> interessiert eben der Inhalt vom -Tag überhaupt nicht.
Dank Deiner Anregung (und der daraufhin festgestellten falschen
Kodierung im Header) habe ich "Gewalt angewendet": den Firefox
angewiesen (Ansicht/Zeichenkodierung(Unicode (UTF-8)), das zu ignorieren
- et voilà: alles bestens. Der Inhalt wird richtig dargestellt -
jedenfalls so weit die nötigen Schriften vorhanden sind.
Bleibt also die Gretchenfrage: Wo stelle ich jenen ominösen "header" ein?
--
------------------------------------------------------
Eberhard Spittler
[ Spämm geht in's Nirwana, Adresse funktioniert aber ]
Re: phpPgAdmin, UNICODE und postgreSQL
am 27.09.2006 14:07:43 von Helmut Chang
Eberhard Spittler schrieb:
> Bleibt also die Gretchenfrage: Wo stelle ich jenen ominösen "header" ein?
Entweder im Webserver oder in der php.ini, wobei es sich dann auf alle
Dokumente bezieht. Oder du suchst die im phpPgAdmin-Code die Stelle, wo
der dämliche -Tag erzeugt wird und ersetzt das durch
header('Content-Type:...'); Ich rate, dass das Ding diesen abhängig von
der Codierung der Datenbank erzeugt.
Allerdings darf dann vorher keine Ausgabe passieren.
gruss, heli
Re: phpPgAdmin, UNICODE und postgreSQL
am 28.09.2006 22:18:21 von Eberhard Spittler
Helmut Chang schrieb:
>> Bleibt also die Gretchenfrage: Wo stelle ich jenen ominösen "header" ein?
>
> Entweder im Webserver oder in der php.ini, wobei es sich dann auf alle
> Dokumente bezieht. Oder du suchst die im phpPgAdmin-Code die Stelle, wo
> der dämliche -Tag erzeugt wird und ersetzt das durch
> header('Content-Type:...'); Ich rate, dass das Ding diesen abhängig von
> der Codierung der Datenbank erzeugt.
Jetzt habe ich für den Rechner mit dem Webserver und dem
postgreSQL-Server mal phpinfo() aufgerufen und folgendes Ergebnis erhalten: