我正在使用Delphi 7并且有一个例程,它带有一系列记录的csv文件并导入它们。这是通过使用MyStringList.LoadFromFile(csvfile)将其加载到TStringList中,然后使用line = MyStringList [i]获取每一行来完成的。
这一直很好但我现在发现特殊字符没有正确拾取。例如,RueFrançoisCoppée就像RueFrançoisCoppée一样出现 - 带有重音的法国人物就是问题。
有一种简单的方法可以解决这个问题吗?
答案 0 :(得分:4)
您的文件编码为UTF-8。例如,考虑ç。正如您从链接中看到的,它以UTF-8编码为0xC3 0xA7
。在Windows-1252中,0xC3
编码Ã和0xA7
编码§
。
使用ANSI Delphi是否可以轻松处理此问题取决于运行程序的主要代码页。
UTF8Decode
来解码UTF-8编码的文本。string
变量中表示它们。如果是这种情况,那么您需要使用Unicode。如果您关心处理国际文本,则需要:
WideString
和TNT Unicode组件。答案 1 :(得分:1)
可能它不是UTF8编码。尝试转换它:
Text := UTF8Encode(Text);
问候,