无法使用Delphi7 webbroker应用程序显示Unicode字符

时间:2015-01-16 13:14:42

标签: delphi unicode delphi-7 webbroker

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

2 个答案:

答案 0 :(得分:0)

(如何)将组件的unicode输出编码为TWebResponse.Content的非unicode(Ansi)字符串?

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

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

function Utf8Encode(const WS: WideString): UTF8String;
system.pas中的

(utf8string是一个字符串 - 以相同的单位定义)。据我所知,Delphi 7中也存在函数。

答案 1 :(得分:0)

您不能,但是您可以解决它。

    Label1.Font.Charset := TURKISH_CHARSET;

缺少Charset属性即可获取所需的内容。