如何让 Delphi 2006 TStringList.LoadFromFile 加载 UTF-16 文件
我有一个 Delphi 2006 应用程序,我正在添加代码来处理一些生成的 CSV 数据文件。 TStringList.LoadFromFile 给出了奇怪的结果,我刚刚发现这些文件是 UTF-16 编码的。
升级到 XE 已计划,但目前不是一个选择。
使用 D2006 处理这些文件的最简单途径是什么?我假设它们可以毫无问题地映射到 8 位 ASCII - 它们是“纯”CSV - 只是数字和逗号等,而且我认为 8 位以外的字符不会有任何问题位设置。
I have a Delphi 2006 app that I am adding code to process some generated CSV data files. TStringList.LoadFromFile was giving strange results and I have just worked out the files are UTF-16 encoded.
Upgrading to XE is planned but not an option at the moment.
What's the simplest route to handle these files with D2006? I'm assuming they can be mapped to 8-bit ASCII without any issues - they are "pure" CSV - just digits and commas, etc. and I don't think there will be any issues with characters that are not in the 8-bit set.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
TStringList
在 D2006 中不支持 UTF-16,因此您必须手动加载和解码文件数据,然后才能将输出放入TStringList
。例如:TStringList
does not support UTF-16 in D2006, so you will have to load and decode the file data manually before then putting the output into yourTStringList
. For example:为了防止数据丢失的风险,您可以尝试使用 JCL< /a> TJclWideStringList。
Just in case there was some risk of data loss, you could try to use the JCL TJclWideStringList.