给定一个TBytes数组,我们能否确定数组是否可以转换为AnsiString,String或UTF8String而不会丢失任何字符?
答案 0 :(得分:1)
你似乎要求做的事是不可能的。您似乎有一个未知来源的字节数组,可以编码为ANSI,UTF-8或UTF-16。您希望能够确定哪种编码是正确的。
这是不可能的,因为存在在所有这三种编码中都有效的字节数组,并且它们代表每种编码中的不同字符串。 Raymond Chen在这里展示了一个很好的例子:The Notepad file encoding problem, redux。
您可以使用启发式算法来尝试猜测编码,其中一个示例是IsTextUnicode
。但任何这样的方法都必然不健全。