【发布时间】:2014-07-01 06:03:46
【问题描述】:
给定一个 TBytes 数组,我们能否确定该数组是否可以转换为 AnsiString、String 或 UTF8String 而不会丢失任何字符?
【问题讨论】:
-
怎么转换的?字节数组是怎么编码的?
-
@DavidHeffernan:无法确定。它使用 ANSI、UTF8 或 Unicode。
-
如果您不知道它是如何编码的,那么您就无法确定地做任何事情。不知道字节代表什么,怎么知道转换是否成功?
-
@DavidHeffernan:我可以使用
LocaleCharsFromUnicode()来测试字符串是 Ansi 还是 Unicode,并使用匹配的编码将字符串转换为 TBytes 数组。但是将 TBytes 数组转换回匹配的字符串似乎并不容易。 -
对于 8 位字符,答案是
always yes,因为 字节根本没有编码。你必须更多地了解内容。另见msdn.microsoft.com/en-us/library/windows/desktop/dd318672
标签: delphi