Após yum upgrade
, o iconv funciona bem quando o glibc-2.12-1.132.el6_5.2.x86_64 é instalado, enquanto o pacote antigo é
glibc-2.12-1.132.el6.x86_64.
iconv -l
produz poucas codificações no CentOS 6.5:
$ iconv -l
10646-1:1993, 10646-1:1993/UCS4, ANSI_X3.4-1968, ANSI_X3.4-1986, ANSI_X3.4, ASCII, CP367, CSASCII, CSUCS4, IBM367,
ISO-10646, ISO-10646/UCS2, ISO-10646/UCS4, ISO-10646/UTF-8,
ISO-10646/UTF8, ISO-IR-6, ISO-IR-193, ISO646-US, ISO_646.IRV:1991,
OSF00010020, OSF00010100, OSF00010101, OSF00010102, OSF00010104,
OSF00010105, OSF00010106, OSF05010001, UCS-2, UCS-2BE, UCS-2LE,
UCS-4, UCS-4BE, UCS-4LE, UCS2, UCS4, UNICODEBIG, UNICODELITTLE,
US-ASCII, US, UTF-8, UTF8, WCHAR_T
Mas no meu Ubuntu a lista parece muito mais longa, aqui é diferente:
CentOS6.5:
$ php -a
php > echo iconv('utf8', 'gbk', 'abc');
PHP Notice: iconv(): Wrong charset, conversion from 'utf8' to 'gbk' is not allowed in php shell code on line 1
php > quit
$ php -i|grep iconv
iconv
iconv support => enabled
iconv implementation => glibc
iconv library version => 2.12
iconv.input_encoding => ISO-8859-1 => ISO-8859-1
iconv.internal_encoding => ISO-8859-1 => ISO-8859-1
iconv.output_encoding => ISO-8859-1 => ISO-8859-1
Ubuntu 14.04:
$ php -a Interactive mode enabled
php > echo iconv('utf8', 'gbk', "abc\n");
abc
php > quit
$ php -i|grep iconv
iconv
iconv support => enabled
iconv implementation => glibc
iconv library version => 2.19
iconv.input_encoding => ISO-8859-1 => ISO-8859-1
iconv.internal_encoding => ISO-8859-1 => ISO-8859-1
iconv.output_encoding => ISO-8859-1 => ISO-8859-1
Mas eu não quero recompilar a glibc (isso será uma grande parte do trabalho), alguma idéia de como ad novo suporte à codificação?
Após yum upgrade
, o iconv funciona bem quando o glibc-2.12-1.132.el6_5.2.x86_64 é instalado, enquanto o pacote antigo é
glibc-2.12-1.132.el6.x86_64.