MSSQL import mittels PHP Script keine Umlaute

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • MSSQL import mittels PHP Script keine Umlaute

    Hallo,
    ich schreibe gerade an einem kleinen PHP Script, dass Datensätzte aus einer MSSQL DB ausliest und diese in eine MySQL DB schreibt.

    Leider gehen bei diesem Import die Umlaute der strings verloren.
    Es ist wohl ein Problem der Kodierung, aber weder utf8_(en|de)code noch mb_convert_encoding haben andere Ergebnisse gebracht.

    System:
    Debian 3.1
    PHP-5.1.4

    Mein Sourcecode:
    PHP-Code:
    // MSSQL Connection
    $mssql_link mssql_connect("$mssql_host:1037",$mssql_user,$mssql_passwd) or die('Connection to database failed!');

    // MSSQL Query in der DB
    $mssql_query mssql_query('SELECT [Nr.], [Name], [Name 2],
    [Suchbegriff], [E-Mail] FROM [sql2].[dbo].[Debitor]'
    $mssql_link) or die('Query failed!');

    while (
    $row mssql_fetch_array($mssql_query))
    {
       echo 
    $row['Name'] . " " $row['Name 2'] . "\n";
    }

    mssql_close($mssql_link); 
    Das Script wird auf der Shell ausgeführt.
    Eine Ausgabe ohne Umlaute sähe z.B. so aus:

    Beispiel fehlendes "ä":
    Englisches Seminar der Universit
    t Bonn
    Beispiel fehlendes "ü":
    Institut fr Handels- und Wirtschaftsrecht d. Uni Bonn
    Wo liegt das Problem?
    Zuletzt geändert von freach; 08.09.2006, 08:58.

  • #2
    Bitte brich den Code um.

    WO tritt das Problem auf? beim auslesen oder beim schreiben der Daten?

    Kommentar


    • #3
      Wie ich schon geschrieben habe, werden die Daten ausgelesen, dann ausgegeben und bei dieser Ausgabe sind keine Umlaute mehr in den Strings.

      Kommentar


      • #4
        Original geschrieben von freach
        ... werden die Daten ausgelesen, dann ausgegeben ...
        Ausgegeben und dann ausgegeben? ôO Das verwirrt mich jez doch etwas. Bei welcher ausgabe sind die denn weg. Kannst du die schon nichmehr aus der MSSQL-DB lesen, oder kannst du sie nicht in die MySQL-DB schreiben, oder kannst du sie in die MySQL-DB schreiben, aber nur wenn du sie aus dieser ausliest fehlen plötzlich die Umlaute?

        Hast du mal einfach per MySQL-Konsole versucht dir den Inhalt von nem Text mit umlauten ausgeben zu lassen, oder meinetwegen mit phpMyAdmin oderso? Kurz gesagt: Weißt du denn, ob sie überhaupt drinne stehen?

        Gruß

        ArSeN

        Edit: Ach hubs, du hast ja erst geLESEN und dann geGEBEN geschrieben, sorry hab ich nich gesehn.
        Nur wenige wissen, wieviel man wissen muss, um zu wissen, wie wenig man weiß.

        Kommentar


        • #5
          Also nochmal ganz langsam .... ich lese Daten aus MSSQL aus.
          In MSSQL werden die Daten mit Umlauten korrekt angezeigt und stehen dort auch korrekt drin.(MS Query Analyzer)

          Mein Script was ich gepostet habe macht erstmal nichts anderes als alle Datensätzte die ich brauche aus MSSQL zu holen und gibt dann die Spalte Name und Name 2 aus.

          Bei dieser Ausgabe sind bereits keine Umlaute mehr in den Strings enthalten.

          Das heisst auf dem Weg von MSSQL DB in das Datenarray gehen die Umlaute verloren.

          Jetzt meine Frage: Warum?

          Kommentar


          • #6
            Hallo freach

            Ich hatte bis vor ein paar Minuten das gleiche Problem. Nun funktioniert alles einwandfrei. Bei mir war das Problem, dass ich in der /etc/freetds/freetds.conf noch einen Eintrag vom fehlerhaften MSSQL Server drin hatte. Dieser Eintrag habe ich von einem anderen Server, der früher auf Woody lief, kopiert. Nun wird er scheinbar nicht mehr gebraucht. Nachdem ich den Eintrag vom fehlerhaften Server auskommentiert habe und nur noch die default Einträge drin hatte, gings es Problemlos (tds version ist übrigens auf 4.2 gesetzt).

            BTW: Hast du die Packete libct1 und php*-sybase installiert?

            Meine Konfiguration:
            Debian Sarge
            PHP 4.3.10-16
            libct1 0.61-6.2
            php4-sybase 4.3.10-16

            Vielleicht hilft dir diese Info weiter.

            Gruss, Thomas

            Kommentar

            Lädt...
            X