🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: pl.comp.lang.delphi
6 messages
6 total messages Started by Karol Sun, 18 Feb 2018 19:26
DelphiXE2 IDHTTP.Get i polskie znaki
#346352
Author: Karol
Date: Sun, 18 Feb 2018 19:26
89 lines
4138 bytes
Jak prawidłowo wysłać polskie znaki do skryptu PHP


   IdHTTP1.Request.ContentEncoding := TEncoding.Default.EncodingName;
   IdHTTP1.Request.UserAgent := 'Mozilla/5.0 (Windows; U; Windows NT 
5.0; pl-PL; rv:1.7.6) Gecko/20050226 Firefox/1.0.1';
   IdHTTP1.Request.ContentType := 'text/html'; 
IdHTTP1.Request.CharSet:=TEncoding.GetEncoding(TEncoding.Default.CodePage).EncodingName;

   ms := TMemoryStream.Create;
   try
   cialo1.First;
   while not cialo1.Eof do
   begin
     ms.clear;
     urls:=
           '?NAZWA='+cialo1.FieldByName('nazwa').Text+
           '&NIP='+cialo1.FieldByName('nip').Text+.........
     urls:=URLEncode(urls,true);
     try
 
IdHTTP1.Get('XXXXXXXXXXXXXXXXXXXX/zapiszdanekontrahenta.php'+urls, ms);
       ShowMessage(PAnsiChar(ms.Memory));
     except
       On E:Exception do ShowMessage(urls);
     end;
     Exit;
     Application.ProcessMessages;


     cialo1.Next;
   end;
   finally
     ms.free;
   end;
end;



W skrypcie PHP mam tak ustawione zmienne

     [_GET] => Array
         (
             [NAZWA] => W?odzimierz    <---    Chodzi o ta zmienną
             [NIP] => 9999999999
         )
....
[_SERVER] => Array
         (
             [USER] => ...
             [HOME] => ...
             [FCGI_ROLE] => RESPONDER
             [UNIQUE_ID] => WonSGuFkqBmMVS7WdQP-2QAAAVY
             [proxy-nokeepalive] => 1
             [HTTP_HOST] => XXXXXXX.pl
             [HTTP_X_REAL_IP] => 99.99.999.99
             [HTTP_X_FORWARDED_FOR] => 99.99.99.999
             [HTTP_X_ACCEL_INTERNAL] => /internal-nginx-static-location
             [HTTP_CONNECTION] => close
             [HTTP_CONTENT_ENCODING] => 1250  (ANSI - Europa ?rodkowa)
             [CONTENT_TYPE] => text/html; charset="1250  (ANSI - Europa 
?rodkowa)"
             [HTTP_ACCEPT] => text/html, */*
             [HTTP_USER_AGENT] => Mozilla/5.0 (Windows; U; Windows NT 
5.0; pl-PL; rv:1.7.6) Gecko/20050226 Firefox/1.0.1
             [PATH] => /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin
             [SERVER_SIGNATURE] =>
             [SERVER_SOFTWARE] => Apache
             [SERVER_NAME] => XXXXXXX.pl
             [SERVER_ADDR] => 99.999.999.99
             [SERVER_PORT] => 80
             [REMOTE_ADDR] => 127.0.0.1
             [DOCUMENT_ROOT] => ...
             [REQUEST_SCHEME] => http
             [CONTEXT_PREFIX] =>
             [CONTEXT_DOCUMENT_ROOT] => .../XXXXXXX.pl
             [SERVER_ADMIN] => info@XXXXXXX.pl
             [SCRIPT_FILENAME] => .../zapiszdanekontrahenta.php
             [REMOTE_PORT] => 38016
             [GATEWAY_INTERFACE] => CGI/1.1
             [SERVER_PROTOCOL] => HTTP/1.0
             [REQUEST_METHOD] => GETXXX
             [REQUEST_URI] =>XXX
             [SCRIPT_NAME] => /zapiszdanekontrahenta.php
             [PHP_SELF] => /zapiszdanekontrahenta.php
             [REQUEST_TIME_FLOAT] => 1518981658.0794
             [REQUEST_TIME] => 1518981658
         )
...
Re: DelphiXE2 IDHTTP.Get i polskie znaki
#346353
Author: Roman Tyczka
Date: Sun, 18 Feb 2018 20:55
9 lines
986 bytes
On Sun, 18 Feb 2018 20:26:23 +0100, Karol wrote:

> Jak prawidłowo wysłać polskie znaki do skryptu PHP

Zakodować do UTF-8 i ustawić w nagłówkach UTF-8.

-- 
pozdrawiam
Roman Tyczka
Re: DelphiXE2 IDHTTP.Get i polskie znaki
#346354
Author: konsul41
Date: Mon, 19 Feb 2018 11:27
10 lines
1248 bytes
W dniu 18-02-2018 o 21:55, Roman Tyczka pisze:
> On Sun, 18 Feb 2018 20:26:23 +0100, Karol wrote:
> 
>> Jak prawidłowo wysłać polskie znaki do skryptu PHP
> 
> Zakodować do UTF-8.
> 
A coś podpowiesz, ponieważ
urls:=UTF8Encode(urls);
nie działa.
Re: DelphiXE2 IDHTTP.Get i polskie znaki
#346357
Author: danielmarcinmazur2
Date: Mon, 19 Feb 2018 12:07
1 lines
1444 bytes
Spróbuj zapisać plik php jako UTF-8 i w  IdHTTP1.Request.ContentEncoding wrzucić także UTF-8
Re: DelphiXE2 IDHTTP.Get i polskie znaki
#346355
Author: Roman Tyczka
Date: Mon, 19 Feb 2018 14:25
19 lines
1437 bytes
On Mon, 19 Feb 2018 12:27:57 +0100, konsul41@wp.pl wrote:

>>> Jak prawidłowo wysłać polskie znaki do skryptu PHP
>> 
>> Zakodować do UTF-8.
>> 
> A coś podpowiesz, ponieważ
> urls:=UTF8Encode(urls);
> nie działa.

Działa, tylko ... widzę, że nie wiesz o tym, że delphi dokonuje niejawnej
konwersji stringa, gdy przypisujesz stringi o różnych stronach kodowych. W
Twoim wypadku następuje podwójna konwersja: win1250 -> utf8 -> win1250.

Żeby to zadziałało musisz zadeklarować zmienną jako typ UTF8String.

-- 
pozdrawiam
Roman Tyczka
Re: DelphiXE2 IDHTTP.Get i polskie znaki
#346356
Author: Karol
Date: Mon, 19 Feb 2018 17:22
18 lines
1731 bytes
W dniu 2018-02-19 o 15:25, Roman Tyczka pisze:
> On Mon, 19 Feb 2018 12:27:57 +0100, konsul41@wp.pl wrote:
>
>>>> Jak prawidłowo wysłać polskie znaki do skryptu PHP
>>>
>>> Zakodować do UTF-8.
>>>
>> A coś podpowiesz, ponieważ
>> urls:=UTF8Encode(urls);
>> nie działa.
>
> Działa, tylko ... widzę, że nie wiesz o tym, że delphi dokonuje niejawnej
> konwersji stringa, gdy przypisujesz stringi o różnych stronach kodowych. W
> Twoim wypadku następuje podwójna konwersja: win1250 -> utf8 -> win1250.
>
> Żeby to zadziałało musisz zadeklarować zmienną jako typ UTF8String.
>
Zadziałało, dziękuję.
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads