UTF8 und PHP

Hi all,

ich habe meine locale DB mit UTF8 kodieren lassen.
Ist aber irgendwie völlig unkompatibel mit PHP.
-> Es kommen komische Sonderzeichen bei Umlauten und Umlaute lässt der nicht schreiben :!:

Warum? Und wie ändere ich die kodierung nachträglich?

Gruß

wennn du das server encoding auf latin9 stellst funktionierts gut, zumindest bei mir. werden die umlaute in der konsole richtig angezeigt und nur bei php falsch?
oder in der httpd.conf (nutzt du apache?) den defaultcharset auf iso-8859-15 setzen
so klappts zumnidest bei mir.

Crypi

Aha!

Also das mit dem defaultcharset hab ich mal gemacht.
Da hat sich auch was getan, war aber immer noch kauderwelsch, also hab ich da mal UTF-8 hingetippt und nun gehts auch bei mir.

Danke für die schnelle Hilfe

Gruß Sy-

jut! hängt eben davon ab welches encoding du in der db nutzt.

Crypi

Hi nochmal,

nun bin ich am Webserver drann und muss feststellen, dass es da ganz genau anders rumm ist :wink:

DB läuft auf UNICODE und es wird UTF8 versucht zu lesen.
Da möchte ich aber die conf nicht ändern und komme nun zu meiner anderen Frage zurück.
Wie kann ich die kodierung nachträglich ändern?

Gruß

die der db? hmm ich weiß das man sie am beginn einstellen kann.
z.B CREATE DATABASE dbname WITH TEMPLATE = template0 ENCODING = ‘LATIN9’;

ich glaub nciht, dass das man das nachträglich ändern kann, kann mich dabei aber auch irren.

so komplett ändern geht wohl nciht aber:

http://www.postgresql.org/files/documentation/books/pghandbuch/html/multibyte.html

da steht man kann das client server encoding ändern… also die daten werden convertiert auf dem weg zum client, soweit ich dsa verstanden habe…

Crypi

Mach einen Dump des Schemas + Daten ohne die SQL-Befehle zum Erstellen der Datanbank an sich im Dump. Dann erstellst du eine neue, leere Datenbank und fährst den Dump wieder rein. Sollte eigentlich problemlos gehen.

so sollte es auf jeden fall funktionieren… aber es klang so als wenn er gerne die konfiguration der db ändern würde…

Crypi

Hi nochmal,
wie ich mal wieder sehe gibts wieder ne Tücke bei mir.
Aus dem Webserver ist kein UTF-8 als Kodierung auswählbar :cry:
Jemand eine Idee wie ich das da reinfriemeln könnte?

Ist das erste Forum wo ich so viel schreibe :wink:
Scheint wohl daran zu liegen, dass PG ein recht ungeschriebenes Blatt im Inet ist.

Gruß
Sy-

Ist keine andere Codierung möglich? Muss es UTF-8 sein?

Mal den Webhoster fragen…
Kenn mich mit Webservern nicht so aus :slight_smile:

Jakob

hi,

was hast du für einen webserver?

setz doch einfach im html das ganze auf utf-8. dann sollte es dein browser richtig interpretieren…

stimmt. postgres gibt es zwar einiges aber auf deutsch wird es schon schwer. ein richtiges forum gab es nicht (bzw. nicht mehr).

cu tb.

kennt ihr
http://www.postgres-forum.de ?

das war auf einmal weg… und die Fehlermeldung find ich auch super…

Crypi

das war ja auch der grund, wieso ich pg-forum.de ins leben gerufen habe. aber wir werden gerade off topic :wink:

aber wir arbeiten ja wieder an einer neuen, großen, deutschsprachigen community…

cu tb.

off-topic ?? wasn das? :wink:

ja und es werden (fast) täglich mehr!

ähem räusper back to topic…

Crypi

Danke für die schnellen Antworten.
Wie ich aber nach einpaar Versuchen festgestellt habe scheint es zu gehen wenn ich einfach Latin1 nutze, statt UNICODE.
(Dachte eigentlich, dass er UTF8 versucht, habe aber übersehen, dass er mehr Zeichen ausgespuckt hatte statt weniger)
Nun gut, damit scheint auch mein Problem gelöst zu sein, würde es sich hier nicht um PG handeln :evil: (Ich liebe PG, bis auf diese Problematiken halt :wink: )
Also der PG-Special diesmal ist:
FEHLER: could not convert UTF-8 character 0x00e2 to ISO8859-1

Scheint auch bei postgresql.org ein breitbesprochenes Thema zu sein.
Ich weiß nun auch, dass Latin1/ISO8859-1 nur unter 0x00e0 sein kann und es somit irgendwo ein Wurm in der Eingabe gibt.
Gut zu wissen das ganze, bringt mich aber kein Stück weiter.
Ich habe hier endlos lange DUMBs und da soll jetzt irgendwo auf einmal ein oder vielleicht mehrere Zeichen sein, die nicht in Latin1 konvertiert werden können.
Wie Ihr bestimmt schon an meiner Aussage raushören könnt, muss ich doch Wissen um welches Zeichen es sich im DUMB handelt um etwas dagegen zu tun und nicht, dass es irgendwo eins gibt… vielleicht auch mehrere…
Gibts da möglicherweise ein konverter, der nicht so empfindlich ist? Oder welchen Weg kennt Ihr für dieses Problem?

Gruß
Sy-

PS: hat die SESSION hier eine Lebensdauer von 30 sek?
Hab mir schon angewöhnt vor dem Posten den Text erstmal zu kopieren :wink:
Cookie geht irgendwie regelmäßig flöten, glaub auch wegen einer Lebensdauer oder dem Comp hier.
Auf jeden fall etwas störend das ganze

ich hab zwar nichts davon bemerkt aber ist behoben. nach dem nächsten login sollte sie etwas länger halten :wink:

so und jetzt wirklich back-to-topic

cu tb

suchmal hier
http://lynx.isc.org/lynx2.8.5/lynx2-8-5/test/unicode.html

nach 0x00e2

Da steht was von dem kleinen a mit nem lustigren tütel oben drauf

Crypi

ansonsten: bei mir funzt das board gut

Perfekt, auf die Idee bin ich garnicht gekommen :idea:
danke!

Gruß
Sy-

google ist dein freund :wink:

Crypi

Ich werde langsam schwach :roll:
kurioser weise ist dieses Zeichen garnicht in dem DUMB vorhanden… :roll:

…es verging eine zeit grade eben…

Und HA!
Mit nem kleinen Erweiterten Tool hab ich da mal näher was rummsuchen lassen.
Etwas ganz seltsames, aber leider so hinzunehmende sache ist:
0x00e2 = â
Zu beachten ist aber, dass dies Latin ist und nicht UTF-8 von was ausgegangen werden sollte.
Verblüfenderweise ist in UTF-8
0x00e2 = :!:
Und lässt sich nicht in Latin1 konvertieren.
Für alle die das Problem haben, werden und sollten :wink:
=> Das liegt am blöden Zeichen, welches in Latin1 nicht vorhanden ist.

Gruß
Sy-