我的输入文件(f) 有一些无法正确读取的Unicode(瑞典语)。
这些方法都不起作用,尽管它们给出了不同的结果:
LoadFromFile(f);
or
LoadFromFile(f,TEncoding.GetEncoding(GetOEMCP));
我正在使用德尔福XE
我如何从文件加载一些 Unicode 数据....以及随后如何保存到文件?谢谢
为了加载 Unicode 文本文件,您需要知道它的编码。如果文件有字节顺序标记(BOM),那么您可以简单地调用LoadFromFile(FileName)
RTL将使用BOM来确定编码。
如果文件没有 BOM,那么您需要显式指定编码,例如
LoadFromFile(FileName, TEncoding.UTF8);
LoadFromFile(FileName, TEncoding.Unicode);//UTF-16 LE
LoadFromFile(FileName, TEncoding.BigEndianUnicode);//UTF-16 BE
由于某种原因,我不知道,没有内置对 UTF-32 的支持,但如果你有这样的文件,那么添加一个TEncoding
实例来处理这个问题。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)