2011-05-11 137 views
0

我寫了下面的代碼將Unicode字符串發送到Web服務器德爾福2010-由idhttp.get

procedure TForm1.Button1Click(Sender: TObject); 
var 
    f2 : TStringStream; 
    str1, str2 : string; 
    str3 : WideString; 
begin 
    f2 := TStringStream.Create(''); 
    str1 := ('مهر');//Persian character (Unicode); 
    str2 := ('آذر');//Persian character (Unicode); 
    str3 := str2; 
    IdHTTP1.Get('http://mehratin.heroku.com/personals/add_item?fn=' + str1 + '&ln=' + str3, f2); 
    Caption := f2.DataString; 
end; 

數據保存發送Unicode字符串到網絡,但它顯示「?」 。你可以看到數據:http://mehratin.heroku.com/personals

有什麼問題?

謝謝。

回答

0

您需要將unicode字符串正確編碼到URL中。

按照設計,URL字符串是ANSI(這就是爲什麼你沒有得到Higurana/Cyrilic等域名)。

我建議你看看有關URL編碼UTF8(Unicode)字符串的this StackOverflow question and its answer

祝你好運!