0

我编写以下代码将 Unicode 字符串发送到 Web 服务器

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;

数据已保存,但显示“?” . 你可以看到数据: http: //mehratin.heroku.com/personals

问题是什么?

谢谢。

4

1 回答 1

0

您需要将 unicode 字符串正确编码到 URL 中。

按照设计,URL 字符串是 ANSI(这就是为什么你没有得到 Higurana/Cyrilic 等域名的原因)。

我建议你看看这个 StackOverflow 问题及其关于 URL-encoding UTF8 (unicode) strings 的答案。

祝你好运!

于 2011-05-15T21:42:13.077 回答