2011-05-11 138 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

祝你好运!