Umlaute Problem mit Sybase über ODBC

  • Hallo

    Ich lese aus einer Sybase Datenbank über eine ODBC Verbindung.

    [autoit]

    Global $oMyError = ObjEvent("AutoIt.Error","MyErrFunc")
    $ado = ObjCreate("ADODB.Connection")
    $ado.Open ("DSN=OSD;Uid=OSD;Pwd=osd")
    If @error Then
    MsgBox(0, "ERROR", "Failed to connect to the database")
    Exit
    EndIf

    [/autoit][autoit][/autoit][autoit]

    $query = $ado.Execute( "select beschreibung from DBA.kubetext WHERE belegnr LIKE '«130546%'")
    While not $query.EOF
    ConsoleWrite($query.Fields(0).Value&@CRLF)
    $query.MoveNext
    WEnd

    [/autoit][autoit][/autoit][autoit]

    Func MyErrFunc()
    Msgbox(0,"AutoItCOM Test","Ein COM-Fehler ist aufgetreten !" & @CRLF & @CRLF & _
    "err.description is: " & @TAB & $oMyError.description & @CRLF & _
    "err.windescription:" & @TAB & $oMyError.windescription & @CRLF & _
    "err.number is: " & @TAB & hex($oMyError.number,8) & @CRLF & _
    "err.lastdllerror is: " & @TAB & $oMyError.lastdllerror & @CRLF & _
    "err.scriptline is: " & @TAB & $oMyError.scriptline & @CRLF & _
    "err.source is: " & @TAB & $oMyError.source & @CRLF & _
    "err.helpfile is: " & @TAB & $oMyError.helpfile & @CRLF & _
    "err.helpcontext is: " & @TAB & $oMyError.helpcontext )
    Local $err = $oMyError.number
    If $err = 0 Then $err = -1
    Local $g_eventerror = $err
    Endfunc

    [/autoit]

    Jetzt bekomme ich folgendes zurück...

    SQL
    Hängeschrank

    Bei PHP bekomme ich das Problem immer mit UTF8_encode weg..
    Wie geht das hier?
    Hab schon nach Autoit ODBC Umlaute gesucht... leider keine passenden Ergebnisse..
    Vielen dank schon einmal

    MFG Chris :D

  • Hier mal ein Workaround, bis ich herausgefunden habe welche Funktion eigentlich dafür zuständig ist.

    [autoit]

    MsgBox(0,"", BinaryToString("Hängeschrank", 4))

    [/autoit]


    Der String ist ANSI, und muss nach UTF-8 konvertiert werden, damit der Umlaut korrekt dargestellt wird.