2010-04-22 38 views
5

德爾福2010德爾福標準輸入輸出代碼頁

使用readLn過程從文件讀取時,默認情況下,我從代碼頁1251(窗口的代碼頁)轉換unicode字符串。

我該如何改變它並從其他代碼頁中的文件中讀取1252或UTF16?

回答

0

您可以使用TStreamReader - 您可以指定在構建時要讀取哪種編碼。

例如,TStreamReader.Create(FileName, TEncoding.UTF8);將創建一個TStreamReader,它可以用於從FileName中指定的文件中讀取文本,並使用UTF-8作爲編碼。

+0

-1。這個答案沒有解決的問題有兩個方面。一個是輸入源是stdin,而不是磁盤文件。另一個是當前代碼使用'readln',而不是流。 (如果這是因爲'readln'總是使用Windows代碼頁,那很好,但請說出來,否則它看起來像忽略了問題的細節。) – 2010-04-22 16:16:45

2

不要對新代碼使用ReadLn/WriteLn。正如Michael Madsen所建議的,在SysUtils中使用TStreamReader。