1
1
Delphi5确实支持Unicode,但只能通过UTF-16(-le)编码的宽字符串。在本地,d5不支持utf-8。 您可以像以前那样读取d2010控制台应用程序的输出,尽管我将取出oemtoansi转换。oem to ansi被oemtochar(甚至在d5天内)所取代,oemtochar可用于将oem字符转换为ansi(使用各种代码页的单字节字符)或widestring(utf-16-le unicode),但它不会做任何事情来解释传入的utf-8字节,可能会把事情搞得一团糟。 您需要的是一组函数,这些函数可以获取您从管道中读取的所有“原始”UTF-8字节,并将它们转换为(UTF-16-LE编码)宽字符串,然后您可以将其馈送给可以接收和显示宽字符串的控件。或者,您可以寻找一个完全执行“原始”字节解释和转换的控件,但我必须承认,我没有看到任何更不用说仍然支持d5的控件。 可以转换许多不同编码但仍支持d5的库是diunicode: http://www.wikitaxi.org/delphi/doku.php/products/unicode/index |
2
0
使用带有Unicode输出的Delphi5有两个问题。 第一个是tmemo不支持Unicode字符,您需要找到另一个控件,例如 TMS Unicode Component Pack . 但是,这个组件包不支持Delphi5。 第二个问题是代码的这一部分:
它读取字符并将其放入缓冲区(pchar)(d5中每字节一个字符),然后键入casting,将其转换为字符串,该字符串在d5中为ansistry。 虽然我已经多年没有使用d5了,但我能记住的唯一能在d5中处理Unicode数据的类型是wideString。 |