2014-05-23 246 views
0

如何在Delphi XE5上將string編碼爲UTF8 string?當我試圖utf-8編碼字符串轉換爲string型我失去了UTF8編碼:如何在Delphi XE5上將字符串編碼爲UTF8 WideString?

Result := string(Utf8Encode(ASource)); 
+1

什麼是'Result'的類型?那是'字符串',你使用Unicode德爾福?如果是這樣,那麼這是['這個問題']的可​​能重複(http://stackoverflow.com/q/2697843/960757)。 [我有一個接近的投票錘,並希望保持這個Q打開,因爲它不完整...] – TLama

+0

德爾福XE5上的字符串 – Dmitry

+1

@TLama:擺動錘子(或我會)。這確實是重複的。 –

回答

1

從重複的問題:

 aUTF8Str := UTF8Encode(aClientDataSet.Fields[i].DisplayLabel); 
     SetCodePage(aUTF8Str, 0, False); 
     aUnicodeStr := UnicodeString(aUTF8Str); 
     Result := aUnicodeStr; 
+0

在強制RawByteString的代碼頁0之後,將'RawByteString'轉換爲'UnicodeString'就是要求丟失數據。 CodePage 0映射到用戶的默認操作系統代碼頁,可能是任何東西。如果您真的想將UTF-8八位字節原樣複製到「UnicodeString」字符中,則最好是手動循環查看「RawByteString」。 –

+2

這裏沒有WideString實例。 –

相關問題