Don Promillo 10 Geschrieben 14. März 2007 Melden Teilen Geschrieben 14. März 2007 Hallo zusammen! Auf einem Windows2003 Service Pack1 Server läuft der MSSQL Server 2005! Aus PHP5 heraus rufe ich mit ADODB die Datenbank folgendermaßen auf: function adoconnect($db_user, $db_pass, $db_dsn, $databasetype='odbc_mssql'){ $db_h =& ADONewConnection($databasetype); $db_h->debug = FALSE; //$dsn = "Driver={SQL Server};Server=winonmac\sqlexpress;Database=TestDB"; $db_h->Connect($db_dsn, $db_user, $db_pass); //$db_h->Connect($db_server, $db_user, $db_pass, $db_dbname); return $db_h; } Problem:In der Datenbank stehen kyrillische Zeichen, die nach der Abfrage nur als Fragezeichen dargestellt werden. Ich habe auch bereits die Funktionen htmlspecialchar(), htmlentities() und mb_convert_variables() auf das Datenbankergebnis angewandt - ohne Erfolg. Wenn ich mit PHP kyrillischen Text aus einer Textdatei lese, wird er richtig dargestellt, daraus habe ich geschlossen, dass an meinem Rechner und an der Webseite die ganzen charset-Einstellungen richtig sind...?? Wenn man sich auf eine Oracle Datenbank connected gibts ein $conn->charSet = 'we8iso8859p1'; (Quelle:docs-adodb.htm) aber leider für MSSQL nicht??? Bin für jede hilfe dankbar, da ich schon seit Tagen auf der Suche bin:-/ Falls noch wichtige Angaben fehlen sollten, bitte schreiben Danke, Gruß, damdp Zitieren Link zu diesem Kommentar
sascha 10 Geschrieben 14. März 2007 Melden Teilen Geschrieben 14. März 2007 Weches Charset ist denn auf dem SQL Server eingestellt? Zitieren Link zu diesem Kommentar
Don Promillo 10 Geschrieben 14. März 2007 Autor Melden Teilen Geschrieben 14. März 2007 Sorry für die dumme Frage, aber wie finde ich das heraus? Mit "rechte Maustaste"->Eigenschaften auf Datenbank habe ich unter Wartung ->Sortierreihenfolge "Latin1_General_CI_AS" stehen, aber das sollte ja mit der Datenspeicherung nichts zu tun haben!?? Zitieren Link zu diesem Kommentar
sascha 10 Geschrieben 14. März 2007 Melden Teilen Geschrieben 14. März 2007 Hi! Scheinbar ist das Problem doch komplexer als eine einfache Codepage-Einstellung. Hast du das hier mal gelesen? Mssql und Kyrillische Zeichen - phpforum.de Zitieren Link zu diesem Kommentar
Don Promillo 10 Geschrieben 14. März 2007 Autor Melden Teilen Geschrieben 14. März 2007 Hab ich schon... Aber so wie es scheint muss die Information irgendwo ZWISCHEN Datenbank und PHP verlorengehen. Nochmal ein paar Informationen: echo mb_detect_encoding("lующ"); //liefert ASCII echo mb_detect_encoding("Ergebnisstring aus der Datenbank"); //liefert ASCII echo iconv(string in_charset, string out_charset, "Ergebnisstring aus der Datenbank") //Keine Auswirkungen(nur Fragezeichen)(für in_charset und out_charset alle Kombinationen aus ASCII, UTF-8, UCS-2) Auch mb_convert_variables(), htmlspecialchar() und htmlentities() haben in allen Kombinationen keine Auswirkung! Daraus schließe ich, dass der String schon als Fragezeichen aus der Datenbank kommen muss! Da er aber in der Datenbank korrekt dargestellt ist, denke ich dass es am mssql-odbc oder ADO liegt... Aber ersstmal danke für deine Mühen:-) Gruß, Tom Zitieren Link zu diesem Kommentar
Don Promillo 10 Geschrieben 15. März 2007 Autor Melden Teilen Geschrieben 15. März 2007 Könnte es möglicherweise mit einem anderen Treiber bzw. mit einer anderen Schnittstellenklasse funktionieren? Momentan benutze ich ja Adodb und odbc_mssql Hat da vielleicht schon jemand Erfahrungen?? Danke, Gruß, Tom Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.