Win1252 -> ansi ?

hi,

ich las gerade die Anfrage wegen UTF-8 und “Umlaute”

ich hätte mit meinen DBF Datei mit “default” UTF-8 keine “Umlaute”, also habe gegoogelt ( da kannte ich dieses Forum noch nicht )
die meisten “Treffer” lauteten Win1252, also hab ich das “ausprobiert” und es funktionierte.

Frage : ist für PostgreSQL v9.x WIN1252 mit German_German.1252 eine “gültige” Einstellung ?
… er will dann immer noch “template0” … ist das ok ?

nur weil es bei mir funktioniert muss es ja nicht bedeuten das es “richtig” ist… nicht das ich in den nächste Fettnapf trete …

Zu Windows kann ich nicht viel sagen, aber was meinst Du mit obiger Aussage?


Andreas

hi,

danke für deine Antwort

wenn ich statt UTF-8 nun Win1252 wähle und “abschicke” bekomme ich eine Meldung das ich “template0” verwenden soll.

Wenn Sie CREATE DATABASE anweisen, template0 statt template1 zu kopieren, erzeugen sie quasi eine jungfräuliche Datenbank, die keine der lokalen Veränderungen in template1 enthält.

das ist ja das was ich möchte.

CREATE DATABASE dbname TEMPLATE template0;

Frage : muss ich dann die “Table” so anlegen ? ich verwenden z.Z. “nur”

CREATE DATABASE dbname

und es “scheint” zu funktionieren.

ich frage nur deshalb nach weil ich unter Xbase DBF “Konstruktionen” kennengelernt habe die in einem bestimmten Umfeld zwar laufen aber die Codierung / Collation etc. überhaupt nicht stimmt.

[quote=“Auge_Ohr”][/QUOTE]

PostgreSQL: Documentation: 9.1: Template Databases

Andreas

YUP … ich hatte meine Zitate aus der “German Version”.

aber “schlauere” macht mich das auch nicht …

Frage : verwendet jemand ausser mir WIN1252 mit German_Germany.1252 ?

… und wenn jemand nun fragen sollte warum ich nicht UTF-8 verwende : Xbase++ kann “nur” Windows ANSI

hi,

war schon lange nicht mehr hier im Forum. Habe eine Menge Test gemacht und es sieht gut aus.
aber Fragen bleiben, als Newbie, immer noch ob denn wirklich alles ok ist.

ich arbeite mit der libpq.dll und die arbeitet mit den "A"nsi API Befehlen.

Frage : gibt es die libpq.dll auch mit “W” API ?

Ich frage wegen UTF-8 als Codierung da ich bislang nur WIN1252 verwendet habe wobei ich DBF OEM Daten vorher nach ANSI konvertiert habe um ein “INSERT …” auszuführen.

Frage : wenn ich einen ANSI String an eine UTF-8 Table per “INSERT …” einfüge … geht das ? und wie zurück ?

Ich habe das “offizielle Handbuch” … welches Stichwort hilft mir das Kapitel zu finden ?
Danke für Hinweis.

hi,

ich muss meine Frage korrigieren. es geht wohl nicht um einzelne Table sondern zunächst um den “Catalog” der später die Table enthalten soll.

Frage : welche Kodierung stellt man für deutsche Umlaute ein wenn die importierten Daten
1.) ASCII
2.) ANSI (Windows Notepad)
3.) BIG5
5.) Microsoft “pe-jing”

sind ? kann man “alle” Kodierungen “gleichzeitig” haben ?

in der alten PostgreSQL v8.x war default ja ANSI eingestellt. In der v9.x ist es UTF-8

Frage : welche Kodierung müsste der “Catalog” haben wenn ich “alte” ANSI Daten vorliegen habe ?

wenn ich die alten Daten per DUMP “ausgebe”, kann dann die v9.x den DUMP “einlesen” ?
und welche Kodierung hätte die neue Table dann ? ( oder ist das vom “Catalog” abhängig ?)

nun hab ich das Kapitel Zeichenkettenfunktionen und Operatoren (9.4) gelesen und die Funktion TO_ASCII() gefunden.
als Quellkodierung wird z.b. SQL_ASCII oder UNICODE angegeben.
die Funktion TO_ASCII() kann ich aber immer nur auf “ein” Text Field anwenden … kann man das “allgemein” einstellen ?

warum die ganzen Fragen :

ich arbeite mit der libpq.dll und die kann IMHO nur die “A"nsi API Funktionen.
auch meine Windows Controls verwenden CreateWindowEx"A” und “verstehen” kein Unicode.

wenn ich mit UTF-8 arbeiten würde dann müsste ich jeweils eine UTF-8 <-> ANSI “Umwandlung” vornehmen …
oder verstehe ich da was völlig falsch ?

IIRC sollte UTF-8 Dein Freund sein. Ein Client, der sich verbindet, sollte durch setzen von client_encoding korrekte Daten geliefert bekommen. Voraussetzung ist, daß die Daten von UTF-8 in das client_encoding ‘paßt’, aber dafür hat man ja UTF-8 erfunden…

Sollte das nicht irgendwie zu setzen gehen, kannst Du auch via ALTER USER set client_encoding dem User das fest an die Stirn tackern.


Andreas

Zitat von akretschmer

IIRC sollte UTF-8 Dein Freund sein. Ein Client, der sich verbindet, sollte durch setzen von client_encoding korrekte Daten geliefert bekommen. Voraussetzung ist, daß die Daten von UTF-8 in das client_encoding ‘paßt’, aber dafür hat man ja UTF-8 erfunden…


so langsam fange ich an zu verstehen ( … denke ich )
1.) Der PostgreSQL Server und die Table mit UTF-8 Codierung muss vom Client die Daten im “passenden” UTF-8 Format zum “schreiben” liefern.
2.) Der PostgreSQL Server “liefert” in der Einstellung die Daten als UTF-8 und der Client muss für das “passende” client_encoding sorgen

Frage zu 1.) : wenn ich “Satzweise” die Daten per “INSERT …” einfüge kann ich vorher die “Decodierung” vornehmen.
nun hab ich was über

COPY FROM STDIN

gelesen aber es war kein Beispiel dabei.
ok ich finde sicherlich hier im Forum paar Antworten aber nun mit UTF-8 … wie muss da die CSV Datei aussehen ?

als OEM ( mit deutschen Umlauten ) geht es wohl nicht. ANSI wäre “normal” für Windows.
eine Datei im UFT-8 Format als CSV aus meinen DBF Dateien zu erstellen … hm …

oder kann mir da pSQL / pgAdmin3 irgendwie “helfen” ?


Zitat von akretschmer
Sollte das nicht irgendwie zu setzen gehen, kannst Du auch via ALTER USER set client_encoding dem User das fest an die Stirn tackern.





hihi … ok verstanden.