gpt4 book ai didi

php - 如何使用TIdHTTP将UTF-8编码的请求发布到PHP服务器?

转载 作者:行者123 更新时间:2023-12-03 19:48:06 25 4
gpt4 key购买 nike

当我将字符串发送到PHP页面时,它可以正常工作。

问题是当我使用阿拉伯语如“محمد”时,我得到的结果是“ ؟؟؟؟”。这是我的Delphi代码:

var
s: string;
server: TIdHttp;
begin
s := 'محمد';
server := TIdHttp.Create;
server.Post('http://mywebsite.com/insert_studint.php?name1=' + s);
server.Free;
end;


我的PHP代码:

<?php
$name1=$_post['name1'];
echo $name1;
?>


如何将请求编码为UTF-8,以便在PHP服务器上获得正确的结果?

最佳答案

这不是TIdHTTP类处理URL字符串查询参数的方式。 Post方法的第一个参数只是目标URL。 URL字符串查询参数需要作为流或字符串列表集合的此方法的第二个参数传递。您还需要在代码中指定请求编码,其余代码将在内部处理该类。尝试以下方法:

var
Server: TIdHTTP;
Params: TStrings;
begin
Server := TIdHTTP.Create;
try
{ setup the request charset }
Server.Request.Charset := 'utf-8';
{ create the name=value parameter collection }
Params := TStringList.Create;
try
{ add the name1 parameter (concatenated with its value) }
Params.Add('name1=محمد');
{ do the request }
Server.Post('http://mywebsite.com/insert_studint.php', Params);
finally
Params.Free;
end;
finally
Server.Free;
end;
end;

关于php - 如何使用TIdHTTP将UTF-8编码的请求发布到PHP服务器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44356088/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com