我为apache2,2开发了一个delphi7 webbroker多语言应用程序。该应用程序使用Oracle xe11进行数据存储,并使用Devart的ODAC组件与数据库进行通信。我将Orasession组件设置为使用Unicode。数据库内的数据正确存储在具有Unicode功能的数据类型列中。使用Delphi 7编写的另一个桌面应用程序,我们可以正确地存储,检索和显示数据库的相同数据(我使用的是支持Unicode的组件)。当我想用html格式的webbroker appl显示这些数据时,就会出现问题。我使用delphi 7(TWebResponse)提供的默认组件。所有以拉丁字符正确显示的文本,但所有其他语言(不是拉丁语)都不是。你能告诉我我做了什么来解决问题吗?无法显示Unicode字符的Delphi7 webbroker应用程序
回答
(你)是否将组件的unicode输出编码为非unicode能力(Ansi)TWebResponse.Content字符串?
我猜系统代码页不包含Ü(可能与德国Umlautü - > U + 00DC相同)并且您正在使用隐式转换为(Ansi)的字符串,该字符串采用最佳映射。
至少在2006年德尔福可以/必须使用
function Utf8Encode(const WS: WideString): UTF8String;
在system.pas(UTF8字符串是一个字符串 - 在同一单元中定义)。据我所知,德尔福7中也有这个功能。
谢谢你的回答,当我将数据库的内容传递给Twebresponse时,我使用Utf8Encode:Response.content:= utf8Encode(ff)其中ff是一个宽字符串。 –
对不起,现在我没有其他想法了。你是否在你传递给utf8Encode的宽字符串中检查了特殊字符(例如调试器中的内存转储或mem视图)?也许它已经被“摧毁”过。 – Chris
嗯,我改变了编译器,并转为Delphi XE7,使用相同的代码,问题依然存在。没有正确显示unicode字符。我制作了另一个桌面应用程序,使用相同的组件连接到oracle数据库,结果很好。存储在数据库中的每种语言的所有文本都显示完美。我说Delphi xe7确实支持unicodes。我现在试着找到一个解决方案 –
- 1. 应用程序中的Unicode字符无法正确显示
- 2. tkinter无法正确显示unicode字符
- 3. 字符串内的Unicode字符无法正常显示
- 4. iTerm2 - 无法显示Unicode字符
- 5. 如何在iphone应用程序中显示unicode字符
- 6. 春季启动应用程序显示???字符而不是unicode
- 7. 显示Unicode字符
- 8. Unicode字符不显示
- 9. 的UILabel显示Unicode字符
- 10. 德国的unicode字母不显示在应用程序
- 11. Unicode字符在我的HTML中无法正确显示
- 12. 我的C#应用程序中的Unicode字符串显示为问号
- 13. 在Android应用程序中无法显示法语符号
- 14. iOS字体无法正确显示所有Unicode字符
- 15. 无法显示特殊字符/ Unicode的正确
- 16. 无法在Windows上显示下标2的Unicode字符
- 17. Unicode字符在NSLog输出中无法正确显示
- 18. 不能显示unicode字符
- 19. 带TextBlock的BulletDecorator不显示Unicode字符
- 20. 无法显示的PyDev Eclipse控制台Unicode字符
- 21. Unicode字符无法在OpenDS的项可以正确地显示
- 22. Highchart不显示Unicode字符
- 23. Unicode字符显示问题
- 24. JSF-primefaces中的法语字符应用程序显示Mojibake
- 25. 在Android的webview显示Unicode字符
- 26. 如何在java应用程序中显示unicode字符(例如中文,日文)?
- 27. 无法在HTML5页上显示Unicode字符
- 28. 无法从Unicode JSON响应显示表情符号
- 29. 无法显示字符
- 30. 当unicode字符无法正确显示时检测到
非拉丁字符完全显示还是显示不同的东西(例如?而不是ä)?生成的html中指定的字符集是什么?字符如何实际编码? – Chris
嗯非拉丁字符显示但不正确,例如字符Ü(Turtkish字母)作为U.生成的html中的字符是utf-8。 –