Delphi标准输入输出代码页

5

Delphi 2010

在使用readLn过程从文件中读取时,默认情况下会得到从Windows的代码页1251转换而来的Unicode字符串。

如何更改代码页以在1252或UTF16中从文件中读取?

2个回答

2

不要在新代码中使用 ReadLn/WriteLn。如 Michael Madsen 所建议,使用 SysUtils 中的 TStreamReader。


0
你可以使用 TStreamReader - 在构造时可以指定要读取的编码。
例如,TStreamReader.Create(FileName, TEncoding.UTF8); 将创建一个 TStreamReader,可用于从 FileName 指定的文件中读取文本,使用 UTF-8 作为编码。

这个答案没有涉及到问题的两个方面。一是输入的来源是标准输入(stdin),而不是磁盘文件。另一个方面是当前代码使用的是readln,而不是流。(如果这是因为readln总是使用Windows代码页,那么没问题,但请说明一下,否则看起来就像你忽略了问题的细节。) - Rob Kennedy

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接