Query: Unicode <> ASCII problem

Hi und zwar führe ich folgenden Query aus:

s.executeUpdate(“SET client_encoding = ‘UNICODE’;” );
s.executeUpdate(“INSERT INTO users (name) VALUES (‘crièl’);”);

Die Datenbank erhält dann als name “crièl”. Hab bereits verscuht das mit client_encoding anzupassen. Evt. hat jemand ne idee wir ich das lösen könnte?

PS: datenbank hast SQL_ASCCI Format. Sollte aber laut docu kein prob für unicode sein.

SQL_ASCII bedeutet laut Doku nichts anderes, als das gar keine Umwandlung stattfindet. Warum lässt du das client_encoding nicht auch auf diesem Wert und schickst die Daten einfach so in die DB?

Okay wenn ich es mit java abfrage, kommt bei mir auch das richtig raus.

Problem existiert nur wenn ich via php auf die datenbank zugreifen und mir die namen ausgeben lasse

<?php

$pg = pg_connect("****");

    $result=pg_exec("SELECT * FROM users  "); // Sample of SQL QUERY
while( ($fetch = pg_fetch_row($result)) ){
echo "
".$fetch[1];
}
pg_close($pg);
?>

Wie könnte ich das ändern?

Dann hast du irgendwo einen Encoding Fehler in der Übertragung zur Datenbank - oder innerhalb deiner Webseite. Setzt du das passende Encoding, damit dein Browser das auch richtig darstellt?

Öhm wo kann ich das in PHP ändern? Problem liegt nicht bei der website
darstellung. php erhält von der Datenbank schon ein falsches format?

pg_exec("SET client_encoding = 'UNICODE';");
o.
pg_exec("SET client_encoding = 'SQL_ASCII';");

ergab keine änderung

Du müsstest einen passenden Header mit dem Encoding mitschicken, alternativ in einen passenden Eintrag über das Encoding in der Seite setzen.

Okay passt alles.

[php]

<?php

$pg = pg_connect("*");

pg_exec(“SET client_encoding = ‘UNICODE’;”);
$result=pg_exec("SELECT * FROM users "); // Sample of SQL QUERY
while( ($fetch = pg_fetch_row($result)) ){
echo "
".$fetch[1];
}
pg_close($pg);
?>

[/php]

Sry für den inkompetenten post. :astonished: Thx

Na ja, an so was muss man alles denken, von daher … schön das es klappt :wink: