德爾福2010德爾福標準輸入輸出代碼頁
使用readLn過程從文件讀取時,默認情況下,我從代碼頁1251(窗口的代碼頁)轉換unicode字符串。
我該如何改變它並從其他代碼頁中的文件中讀取1252或UTF16?
德爾福2010德爾福標準輸入輸出代碼頁
使用readLn過程從文件讀取時,默認情況下,我從代碼頁1251(窗口的代碼頁)轉換unicode字符串。
我該如何改變它並從其他代碼頁中的文件中讀取1252或UTF16?
您可以使用TStreamReader - 您可以指定在構建時要讀取哪種編碼。
例如,TStreamReader.Create(FileName, TEncoding.UTF8);
將創建一個TStreamReader,它可以用於從FileName中指定的文件中讀取文本,並使用UTF-8作爲編碼。
不要對新代碼使用ReadLn/WriteLn。正如Michael Madsen所建議的,在SysUtils中使用TStreamReader。
-1。這個答案沒有解決的問題有兩個方面。一個是輸入源是stdin,而不是磁盤文件。另一個是當前代碼使用'readln',而不是流。 (如果這是因爲'readln'總是使用Windows代碼頁,那很好,但請說出來,否則它看起來像忽略了問題的細節。) – 2010-04-22 16:16:45