我为apache2,2开发了一个Oracle多语言应用程序。该应用程序使用delphi7 xe11进行数据存储,并使用Devart组件与数据库进行通信。我将Orasession组件设置为使用Unicode。数据库中的数据被正确地存储在支持Unicode的数据类型列中。使用另一个桌面应用程序,也是用Delphi7编写的,我们能够正确地存储、检索和显示数据库的相同数据(我使用的是支持Unicode的组件)。当我想用webbroker应用程序以html格式显示这些数据时,我的问题就出现了。我使用的是Delphi7 (TWebResponse)提供的默认组件。所有使用拉丁字符的文本都可以正确显示,但使用不同语言(非拉丁语)的所有其他文本都不能正确显示。你能建议我做些什么来解决这个问题吗?
发布于 2015-01-16 21:59:43
(如何)将组件的unicode输出编码为TWebResponse.Content的非unicode capable (Ansi)字符串?
我猜系统代码页不包含µ(可能与德语的Umlautµ-> U+00DC相同),并且您正在使用隐式转换为(Ansi)字符串,该字符串采用了它所能获得的最佳映射。
至少在Delphi 2006中,您可以/必须使用
function Utf8Encode(const WS: WideString): UTF8String;在system.pas中(utf8string是在相同单元中定义的字符串)。据我所知,这个函数在Delphi 7中也有。
发布于 2020-12-16 01:35:34
你不能,但你可以绕过它。
Label1.Font.Charset := TURKISH_CHARSET;打乱Charset属性以获得您想要的东西。
https://stackoverflow.com/questions/27984768
复制相似问题