0

我为 apache2,2 开发了一个 delphi7 webbroker 多语言应用程序。该应用程序使用 Oracle xe11 进行数据存储,并使用 Devart 的 ODAC 组件与数据库进行通信。我将 Orasession 组件设置为使用 Unicode。数据库内的数据正确存储在支持 Unicode 的数据类型列中。使用另一个桌面应用程序,也是用 Delphi 7 编写的,我们能够正确存储、检索和显示数据库的相同数据(我正在使用支持 Unicode 的组件)。当我想用 webbroker appl 以 html 格式显示这些数据时,就会出现我的问题。我正在使用 delphi 7 (TWebResponse) 提供的默认组件。所有以拉丁字符显示的文本都正确显示,但其他所有以不同语言(非拉丁语)显示的文本则不能正确显示。

4

2 回答 2

0

(如何)将组件的 unicode 输出编码为 TWebResponse.Content 的不支持 unicode 的 (Ansi)String?

我猜系统代码页不包含 Ü(可能与德语元音变 Ü -> U+00DC 相同),并且您正在使用对 (Ansi)String 的隐式转换,它可以采用最佳映射。

至少在 Delphi 2006 中,您可以/必须使用

function Utf8Encode(const WS: WideString): UTF8String;

在 system.pas 中(utf8string 是一个字符串 - 在同一单元中定义)。据我所知,该功能也存在于 Delphi 7 中。

于 2015-01-16T13:59:43.090 回答
0

你不能,但你可以解决它。

    Label1.Font.Charset := TURKISH_CHARSET;

弄乱 Charset 属性以获得您想要的。

于 2020-12-15T17:35:33.993 回答