Bug #78307 [Fbk->Opn]: Strange caracter in $_POST with mbstring.encoding_translation = On

From: Date: Wed, 17 Jul 2019 18:55:34 +0000
Subject: Bug #78307 [Fbk->Opn]: Strange caracter in $_POST with mbstring.encoding_translation = On
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-221847@lists.php.net to get a copy of this message
Edit report at https://bugs.php.net/bug.php?id=78307&edit=1

 ID:                 78307
 User updated by:    heidy dot hery at gmail dot com
 Reported by:        heidy dot hery at gmail dot com
 Summary:            Strange caracter in $_POST with
                     mbstring.encoding_translation = On
-Status:             Feedback
+Status:             Open
 Type:               Bug
 Package:            mbstring related
 Operating System:   Windows 10
 PHP Version:        7.3.7
 Block user comment: N
 Private report:     N

 New Comment:

Hello,

my default parameters in php.ini is :

-------------------------------------------------------
; PHP's built-in default media type is set to text/html.
; http://php.net/default-mimetype
default_mimetype = "text/html"

; PHP's default character set is set to UTF-8.
; http://php.net/default-charset
default_charset = "UTF-8"

; PHP internal character encoding is set to empty.
; If empty, default_charset is used.
; http://php.net/internal-encoding
;internal_encoding =

; PHP input character encoding is set to empty.
; If empty, default_charset is used.
; http://php.net/input-encoding
;input_encoding =

; PHP output character encoding is set to empty.
; If empty, default_charset is used.
; See also output_buffer.
; http://php.net/output-encoding
;output_encoding =

-----------------------------------------------

I use in all my html/php file the header :

<meta charset="utf-8"/>
or
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>

in my httpd.conf

I add the line :

AddDefaultCharset utf-8

But that's doesn't change anything, I've put also accept-charset="utf-8" in
the form attribute.

The only thing that's worked it's when I've put the "http_input" to UTF-8
and turn off the "encoding_translation".


Previous Comments:
------------------------------------------------------------------------
[2019-07-17 16:17:20] requinix@php.net

What's the value of your default_charset setting? Are your pages being served in UTF-8 encoding
or something else?

------------------------------------------------------------------------
[2019-07-17 15:16:06] heidy dot hery at gmail dot com

Description:
------------
Description : 

When I use multipart/form-data for posting data to the php side. 
The $_POST variable output strange caracter like "réveiller". in place of
"réveiller".

But I've tested two sites. with the same Apache/PHP configuration... and on the first site,
multipart/form-data work correctly, but not on the second site... it's a very strange and non
stable behaviour.

the php.ini configuration was as follow :

mbstring.internal_encoding = UTF-8
mbstring.http_input = auto
mbstring.encoding_translation = On

I've made a test with enctype="application/x-www-form-urlencoded" and the data showed
correctly in the $_POST array.

So in order to have the correct behaviour with enctype="multipart/form-data", I've to
set the following value in php.ini

mbstring.internal_encoding = UTF-8
mbstring.http_input = UTF-8
mbstring.encoding_translation = Off


Now all is working correctly.

my php version is 7.3.5
apache 2.4.39
Windows 10 x64.






------------------------------------------------------------------------



--
Edit this bug report at https://bugs.php.net/bug.php?id=78307&edit=1


Thread (5 messages)

« previous php.bugs (#221847) next »