2017-03-05 78 views
2

隨着德爾福7和Indy 9.00.10我使用REST API與JSON。 我用這樣的TidHTTP組件創建一個GET請求。德爾福7 - 字符集REST JSON

IdHTTP1.HandleRedirects := True; 
IdHTTP1.ReadTimeout  := 5000; 
IdHTTP1.Request.Accept := 'application/json'; 
IdHTTP1.Request.AcceptCharSet := 'UTF-8'; 
IdHTTP1.Request.AcceptLanguage := 'sv'; 
IdHTTP1.Request.ContentType := 'application/json'; 
Memo1.Text := IdHTTP1.Get('http://api.arbetsformedlingen.se/af/v0/platsannonser/7088149'); 

我嘗試了好幾種字符集,但不能糾正瑞典字符,如A,A,ö在響應中。

  • A成爲A¥
  • A成爲澶
  • ö成爲ö

我在做什麼錯在這裏?

+0

回覆與''開始。 –

+0

感謝您的額外信息。現在,當我嘗試它時,我可以在備忘錄中正確清晰地看到ä,ö和å字符,例如, 「konsult om dusökerenvärldav」 –

+0

奇怪的是,我仍然得到這個[鏈接](http://imgur.com/KbMADMb) Im使用Delphi 7與Indy 9.00.10 – Fusecube

回答

7

在德爾福7 System單位有UTF8ToAnsi()功能。使用這樣的:

Memo1.Text := UTF8ToAnsi(IdHTTP1.Get('http://api.arbetsformedlingen.se/af/v0/platsannonser/7088149')); 

的結果是正確的在Delphi 7.

+0

你一直在這個話題非常有幫助。感謝你,我們得出結論:Delphi 7不支持Unicode。今年在2017年將UTF-8轉換爲ANSI版本只是感覺完全錯誤,但在這種情況下,它將是正確的選擇。否則,我總是使用UTF-8! – Fusecube

+0

Delphi 7沒有完整的Unicode支持。它的默認字符串類型使用ANSI編碼。如果您希望在2017年獲得完整的Unicode支持,請升級到新版本。 Delphi 7已超過15年。 –

+0

@TomBrunberg對不起,我的話是爲了OP。 –