【发布时间】:2020-08-18 12:51:11
【问题描述】:
尝试使用 TStringList.LoadFromFile 方法加载文件时出现以下异常:
stringlist1.loadfromfile('c:\example.txt');
目标多字节代码页中不存在 Unicode 字符的映射
文件是Unicode,错误似乎与文件中存在的这个特殊字符有关。 example.txt文件只有一行,内容如下图:
文件包含这些字节:
EF BB BF 5A 65 20 ED A0 BC ED B7 AB ED A0 BC ED B7 AE有什么解决方法吗?
【问题讨论】:
-
你怎么打电话给
LoadFromFile?请包括实际代码,最好是实际的文本文件。您可以使用十六进制编辑器查看其实际数据,并将其作为预格式化文本块发布到此处。 -
我更新了问题。 “example.txt”文件只有一行,这正是我在问题上的表现。
-
这还不够。文本文件的实际字节看起来完全不同,具体取决于编码:UTF8、UTF16LE、UTF16BE、UTF32LE 或 UTF32BE,并且在每种情况下,有或没有 BOM(所以有 10 个不同的版本!)。当您在文本编辑器中打开所有这些不同的文本文件时,它们看起来都是一样的。
-
我刚刚上传了文件并编辑了问题。
-
Stack Overflow 的要求之一是,问题是自包含的,这意味着没有指向任何外部站点或资源的链接,这些链接可能 a) 随时消失,b) 有害。因此,请再次编辑您的问题以在文件中包含字节的十六进制表示。
标签: delphi delphi-xe delphi-10.3-rio