2010-04-22 2 views
5

Delphi 2010Delphi Standard Input Output-Code Seite

Wenn beim Lesen von Datei Readln Verfahren unter Verwendung von Standard-i von Codepage 1251 (Codepage von Fenstern) umgewandelt Unicode-String erhalten.

Wie kann ich dies ändern und von der Datei in anderen Codepage, in 1252 oder UTF16 lesen?

Antwort

0

Sie können einen TStreamReader verwenden - Sie können angeben, welche Codierung Sie beim Erstellen lesen möchten.

Beispiel: TStreamReader.Create(FileName, TEncoding.UTF8); erstellt einen TStreamReader, der zum Lesen von Text aus der in FileName angegebenen Datei verwendet werden kann, wobei UTF-8 als Codierung verwendet wird.

+0

-1. Die Frage, auf die sich diese Antwort nicht bezieht, hat zwei Aspekte. Eine ist, dass die Quelle der Eingabe stdin ist, keine Datei. Der andere ist, dass der aktuelle Code 'readln' verwendet, keinen Stream. (Wenn 'readln' immer die Windows-Codepage verwendet, ist das in Ordnung, aber bitte sagen Sie es, sonst sieht es so aus, als hätten Sie die Details der Frage ignoriert.) –

2

Verwenden Sie nicht ReadLn/WriteLn für neuen Code. Wie von Michael Madsen vorgeschlagen, verwende TStreamReader in SysUtils.