Autoit forceutf8.au3 funktioniert nur bei manuell erstellten Strings

  • Hey,

    ich habe folgendes Problem: Ich habe eine txt Datei mit Songnamen, die ich aus einer Youtube Playlist genommen habe. Die sehen ungefähr so aus:
    "John Dahlbäck - Raven", "Major Lazer & DJ Snake Feat. MØ - Lean On"
    Das Problem ist, dass ich bei Sonderzeichen immer komische Zeichen bekomme (s.o.). Nach ein wenig Recherche habe ich herausgefunden dass es wohl an fehlerhafter "Übersetzung" in UTF8 liegt. Dazu habe ich mir folgende Library heruntergeladen: autoitscript.com/forum/topic/1…ng-its-original-encoding/

    Ich benutze die fixUTF8($mystring) Methode um diese Zeichen zu korrigieren wie folgt:

    $mystring = "John Dahlbäck - Raven"
    MsgBox(0, "", fixUTF8($mystring))

    Das klappt auch wunderbar und ich bekomme den korrigierten String raus. Wenn ich allerdings mit FileOpen() und FileReadline() den String erstelle und dann konvertieren will bleibt er unverändert... Habt ihr Ideen wo das Problem liegt? Vielen Dank für eure Hilfe! :)

    LG EcxaByte

  • Hier mal das Beispiel script womit ich teste

    Und hier die dazu passende txt Datei (per Hand erstellt, per AutoIt den Songnamen eingefügt):

    Code: songnames.txt
    John Dahlbäck - Raven
  • Also so würde es doch funktionieren.
    Die #include <forceutf8.au3> habe ich leider derzeitig nicht auf diesem PC.

    Wenn Du Sie von Ferne auslesen möchtest, dann kopiere sie vor dem auslesen doch ins Scriptverzeichnis. ;) Frauenlogik. ;)

    pic_201611100005.png

    Lieben Gruß,
    Alina

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Geheime Information: ;)
    k3mrwmIBHejryPvylQSFieDF5f3VOnk6iLAVBGVhKQegrFuWr3iraNIblLweSW4WgqI0SrRbS7U5jI3sn50R4a15Cthu1bEr

  • Nach Beitrag 5 fällt mir noch ein, das es so gehen könnte:

    AutoIt
    #include <File.au3>
    #include <forceutf8.au3>
    $datei = FileOpen("E:\Automatic Music Downloader\songnames.txt",0)
    sleep(10000)
    $zeile = FileReadLine($datei, 1)
    $utf = fixUTF8($zeile)
    MsgBox(0,"",$utf)

    Grund, die Datei ist so groß, das er zum öffnen etwas länger als "mal kurz" benötigt. Wenn Du weißt was ich meine.
    Das "Sleep" aber noch anpassen und dabei ruhig "etwas" mehr als notwendig.

    Lieben Gruß,
    Alina

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Geheime Information: ;)
    k3mrwmIBHejryPvylQSFieDF5f3VOnk6iLAVBGVhKQegrFuWr3iraNIblLweSW4WgqI0SrRbS7U5jI3sn50R4a15Cthu1bEr

  • Interessant, danke für deine Antwort! Werde es bald mal probieren, ich habe jetzt einen Weg gefunden, dass die komischen Sonderzeichen erst gar nicht entstehen (Statt InetGet($link) habe ich jetzt InetGet($link, false) benutzt und den binary code in den string konvertiert). Ich werde trotzdem aus interesse mal etwas rumprobieren danke für die Idee :)
    Trotzdem ist für mich das Thema dann erledigt ^^