suit: Zeichencodierung, MSSQL und PHP

Hallo,

ich hab' hier einen MSSQL-Server (SQL Server Standard Edition, gebündelt mit Windows Server 2003) und muss diesen mit PHP um ein paar Daten erleichtern. Auf den SQL-Server hab' ich keinen Einfluss.

Die Daten liegen dort in Latin 1 vor. Wie bringe ich jetzt der Datenbank-Verbindung bei, die Daten direkt in UTF-8 zu konvertieren?

In der PHP-Doku ist nur von iconv() die Rede - aber es kann doch nicht sein, dass ich jede einzelne Ausgabe einzelen codieren muss - gibts da eine Gegenstück zu SET NAMES oder ähnliches?

Vielen Dank

  1. Moin,

    Die Daten liegen dort in Latin 1 vor. Wie bringe ich jetzt der Datenbank-Verbindung bei, die Daten direkt in UTF-8 zu konvertieren?

    Ich hab diesen Artikel gefunden, vielleicht hilft er dir.

    Grüße Marco

    1. Die Daten liegen dort in Latin 1 vor. Wie bringe ich jetzt der Datenbank-Verbindung bei, die Daten direkt in UTF-8 zu konvertieren?
      Ich hab diesen Artikel gefunden, vielleicht hilft er dir.

      Nein, leider nicht - MSSQL (Microsoft) != MySQL (Oracle) :)

      1. Moin,

        Nein, leider nicht - MSSQL (Microsoft) != MySQL (Oracle) :)

        Oh, das hatte ich direkt überlesen.

        Grüße Marco

    2. Tach!

      Ich hab diesen Artikel gefunden, vielleicht hilft er dir.

      Was er da beschreibt, klingt wie ein ziemliches Durcheinander in seiner Datenhaltung. Wenn man das Durcheinander nicht hat und zudem noch vor einer solchen Umstellung ausreichend Erfahrung im Umgang mit den Zeichenkodierungen unter MySQL gesammelt hat, ist alles halb so wild.

      dedlfix.

  2. Das Stichwort, dass mich auf die Lösung geführt hat sind "named pipes":
    http://www.php.net/manual/en/ref.mssql.php#81594

    Einfach die Verbindung namentlich definieren - dabei lässt sich dann auch die Zeichencodierung des Clients angeben - was dann letztlich am Server läuft ist egal:

    /etc/freetds.conf

    [VERBINDUNGSNAME]
    host = 127.0.0.1
    port = 1433
    tds version = 7.0
    client charset = UTF8