我爲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。 –