2011-11-30 57 views
0

我需要使用德爾福2006(沒有任何第三方單元/組件)進行法語/荷蘭語/德語語言的翻譯。德爾福2006用一個單一的ansi代碼頁翻譯/法語/荷蘭語/德語

這3種語言的代碼頁爲1252。我們的數據庫符合UTF-8標準,所以目前我依賴於表中所有值都是UTF-8的事實。我應該對此有信心嗎?這將工作得很好,或者我應該擔心UTF-8 - >代碼頁1252的差異,如果有的話?我不明白UTF-8和代碼頁之間的區別(例如我明白前127個字節是相同的,並且與第128個字節乞討是不同的)。

其次,我需要在某些領域進行搜索。我可以依賴D2006的ANSIUpperCase功能嗎?或者我應該做一個自定義函數,來對待每個特殊字符? LE:數據以UTF-8格式存儲。

在此先感謝!

+0

如果您詢問每個問題的一個主題,我希望您的問題更好。除了你以外,整個世界似乎都沒有用,因爲你已經將很多不相關的東西結合成一個問題。如果你打破你的問題,每個人都會受益。另外,由於您的數據庫已經是UTF8,我想知道爲什麼您會繼續使用ANSI delphi版本? XE/XE2是自然升級。只是一個想法。 –

回答

5
  1. 數據庫符合UTF8並不意味着數據實際上存儲在UTF8中。例如。在Firebird(符合UTF8)中,您可以使用ANSI字符集聲明表。
  2. 您需要將UTF8轉換爲ANSI 1252,反之亦然。例如。與UTF8EncodeUTF8Decode例程。
+0

我會澄清這個問題。數據存儲在UTF-8 – RBA

+0

中,解碼UTF-8後,AnsiUpperCase會給我帶來好的結果嗎?或者我應該對待字符串? – RBA

+1

是的,轉換爲ANSI後,可以正常使用ANSI字符串函數。不要忘記將結果轉換回UTF8發佈到數據庫。 –