ID: 44945
User updated by: thomas dot jarosch at intra2net dot com
Reported By: thomas dot jarosch at intra2net dot com
Status: Bogus
Bug Type: Strings related
Operating System: Linux
PHP Version: 5.2.6
New Comment:
Thanks for looking into this, Jani.
So, why does it work via CLI and not via apache if the same LANG
environment variable is specified? I've even seen
an "AddDefaultCharset UTF8" entry in the apache config.
Thomas
Previous Comments:
------------------------------------------------------------------------
[2008-07-13 17:01:20] [EMAIL PROTECTED]
There's no automatic way. If you need to have it work with utf-8 of
course you have to set the locales properly too. Or just not use UTF-8..
------------------------------------------------------------------------
[2008-05-08 12:59:36] thomas dot jarosch at intra2net dot com
Thanks, that seems to work.
I've inspected the environment on the server and it contains a
LANG="en_US.UTF-8" variable. Is there a way I can fix this/PHP
autodetects it without touching every code using escapeshellarg()?
------------------------------------------------------------------------
[2008-05-08 11:28:25] [EMAIL PROTECTED]
Try with the code below (mandatory in the test):
if (false == setlocale(LC_CTYPE, "UTF8", "en_US.UTF-8")) {
die("skip setlocale() failed\n");
}
------------------------------------------------------------------------
[2008-05-08 11:08:27] thomas dot jarosch at intra2net dot com
Description:
------------
Hello together,
I'm seeing almost the same issue as #44564
after upgrading from PHP 5.2.5 to 5.2.6.
If I execute the provided test code via php CLI, everything works as
expected. Running the same code via mod_php inside Apache skips the
UTF-8 multi-byte characters.
I've looked at the ext/standard/exec.c code a bit and checked that
my "config.log" in both PHP build directories contains
"#define HAVE_MBLEN 1" so the call to php_mblen() should work.
Any idea what that could be?
One thing I noticed is that php_mblen() is a wrapper macro for
mblen() or mbrlen() which features a slight difference in the return
code (see -2 rc for details).
Thanks,
Thomas
Reproduce code:
---------------
var_dump(escapeshellarg('ä'));
Expected result:
----------------
string(2) "'ä'"
Actual result:
--------------
string(2) "''"
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=44945&edit=1