Umlaute an Batch (CMD) übergeben

Hallo,

nachdem ich eine 32Bit TTS (Loquendo) im Einsatz habe funktioniert die direkte Sprachausgabe mit IPS64Bit ja nicht mehr. Von daher übergebe ich diese an eine Batch Datei.

Hier ein Beispiel:

    function tts_play($ansagetext) 
     { 
        $datei = fopen(IPS_GetKernelDirEx()."\webfront\user\Sprachausgabe\Textausgabe.txt","w+"); 
        fwrite($datei, $ansagetext); rewind($datei); fclose($datei); 
        IPS_ExecuteEx(IPS_GetKernelDirEx()."\webfront\user\Sprachausgabe\sprich.bat","",false,false,1); 
     }   

tts_play ("Flüstermodus aktiviert");  

Das „Ü“ wird nicht als Ü ausgesprochen, sondern als „1/4 Stern“ das liegt aber denke ich irgendwie am Zeichensatz oder sowas, nicht an der Stimme, es wird ja in eine CMD übergeben…

Kann mir jemand sagen wie ich Umlaute korrekt übergeben kann?

Besten Dank!

Hallo,

schau mal hier: Problem gelöst: cmd, BATch Umlaute - Windows robocopy

Grüße,
Kai

Genau mein Humor :D:D

Besten Dank, mit

chcp 1252

in der Batch funktioniert es wieder! :smiley:

Ich habe mich leider getäuscht, es funktioniert nur wenn ich die Textdatei als ANSI abspeichere.

Scheinbar (laut Notepad) speichert PHP die Textdatei als UTF-8 ab. Umlaute werden in der Datei zwar korrekt dargestellt, aber nicht korrekt vorgelesen. Das funktioniert nur wenn ich die Datei im Notepad nochmal öffne und als ANSI abspeichere.

Kann ich direkt aus PHP als ANSI speichern???

Besten Dank!