Wie kann eine text-Datei umgewandelt werden, von ANSI zu UTF-8 mit Delphi 7?
Ich ein Programm geschrieben mit Delphi 7 das sucht *.srt
Dateien auf einer Festplatte. Dieses Programm listet den Namen und den Pfad dieser Dateien in einem memo. Jetzt muss ich diese Dateien zu konvertieren von ANSI zu UTF-8, aber ich noch nicht geschafft.
- ANSI ist nicht wirklich eine richtige Zeichenkodierung name; Windows verwendet in der Regel "ANSI" auf meine Windows-1252. stackoverflow.com/questions/701882
- Windows verwenden Sie "ANSI" zu bedeutet, was Ihr Gebietsschema ist. Es wäre SJIS für windows Japanisch Benutzer; GB2312 für Chinesisch S-windows-Benutzer, etc...
- Würden Sie bitte erklären, was genau passiert, so dass Sie "nicht gelungen"?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den Utf8Encode-Funktion nimmt einen WideString string als parameter und gibt einen Utf-8 string.
Beispiel:
TStringList
sind auch ANSI. Sind Sie sicher, dass das funktionieren wird?Werfen Sie einen Blick auf GpTextStream das aussieht, wie es funktioniert mit Delphi 7. Es hat die Fähigkeit zum Lesen/schreiben von unicode-Dateien in älteren Versionen von Delphi (obwohl funktioniert mit Delphi 2009) und sollte helfen, mit Ihrer Umwandlung.
Bitte Lesen Sie die ganze Antwort, bevor Sie mit dem Programmieren beginnen.
Die richtige Antwort auf die Frage - und es ist nicht einfach eine - bestehen im wesentlichen aus Baum-Schritte:
Jedoch diese Lösung wird eine UTF-8-Zeichenfolge, die die Eingabe von ANSI-string, ist dies wahrscheinlich nicht der beste Weg, um Ihre Probleme zu lösen, da die Datei-Namen können schon beschädigt werden, wenn die ANSI-Funktionen zurückgegeben, so richtige Datei-Namen sind nicht garantiert.
Die richtige Lösung für Ihr problem ist wegen komplizierter:
Wenn Sie wollen, um sicher, dass Ihre Datei-Namen-Liste ist genau reinigen, müssen Sie sicherstellen, dass es nicht bekommen in ANSI konvertiert in alle. Sie können dies tun, indem Sie explizit mit dem "W" - version der Datei-handling-API. In diesem Fall natürlich können Sie nicht verwenden, TFileStream und andere ANSI-Datei-handling-Objekte, aber die Windows-API-Aufrufe direkt.
Ist es nicht , dass hart, aber wenn Sie bereits ein Komplexes framework, z.B. TFileStream, könnte es sein a bit of a pain in the @ss. In diesem Fall die beste Lösung ist, erstellen Sie einen TStream Nachkomme, nutzt die entsprechende API.
Ich hoffe, meine Antwort hilft Ihnen, oder jemand, der sich mit dem gleichen problem. (Ich musste nicht so lange her.)
How can a text file be converted ...
2) nach der Erwähnung der Datei-Liste, die Frage weiter mitI need convert these files
.Meinst du ASCII?
ASCII abwärtskompatibel mit UTF-8.
http://en.wikipedia.org/wiki/UTF-8