Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

кодировка строк

333
08 ноября 2007 года
GHopper
200 / / 28.12.2004
Здравствуйте!
 
Код:
$b = mb_convert_encoding($b,'cp1251','utf8');
 
Код:
$b = iconv('utf8','cp1251', $b);
Первый код работает, а второй - никак не хотит. Не могу понять где пес порылся...

phpinfo:
Код:
iconv
iconv support            enabled  
iconv implementation  glibc  
iconv library versio     2.3.5

mbstring
Multibyte Support                           enabled
Multibyte string engine                    libmbfl
Multibyte (japanese) regex support    enabled
Multibyte regex (oniguruma) version   4.4.4
Multibyte regex (oniguruma) backtrack check On
22K
08 ноября 2007 года
AlKov
28 / / 26.06.2007
Цитата: GHopper
Здравствуйте!
 
Код:
$b = mb_convert_encoding($b,'cp1251','utf8');
 
Код:
$b = iconv('utf8','cp1251', $b);
Первый код работает, а второй - никак не хотит. Не могу понять где пес порылся...


"Никак не хотит" - как-то маловато информации.. ;) Чем хоть ругается? PHP какой версии? iconv при сборке включена (в phpinfo --with-iconv' есть?)? Логи почитайте..

P.S. Да, и еще - почему это у Вас и в левой и в правой части одна и та же переменная ($b) используется? "Очепятка", или "такой стиль"? ;)

333
08 ноября 2007 года
GHopper
200 / / 28.12.2004
Прошу прощения за невниматильность - обязуюсь исправиться.
[SIZE=2]PHP Version 5.2.1-pl3-gentoo[/SIZE]

 
Код:
'./configure' '--prefix=/usr/lib/php5' '--host=i686-pc-linux-gnu' '--mandir=/usr/lib/php5/man' '--infodir=/usr/lib/php5/info' '--sysconfdir=/etc' '--cache-file=./config.cache' '--disable-cli' '--with-apxs2=/usr/sbin/apxs2' '--with-config-file-path=/etc/php/apache2-php5' '--with-config-file-scan-dir=/etc/php/apache2-php5/ext-active' '--without-pear' '--disable-bcmath' '--with-bz2' '--enable-calendar' '--disable-ctype' '--without-curl' '--without-curlwrappers' '--disable-dbase' '--enable-exif' '--without-fbsql' '--without-fdftk' '--disable-filter' '--enable-ftp' '--with-gettext' '--without-gmp' '--disable-hash' '--disable-ipv6' '--disable-json' '--without-kerberos' '--enable-mbstring' '--with-mcrypt' '--without-mhash' '--without-msql' '--with-mssql' '--with-ncurses' '--with-openssl' '--with-openssl-dir=/usr' '--disable-pcntl' '--disable-pdo' '--with-pgsql' '--disable-posix' '--with-pspell' '--without-recode' '--disable-shmop' '--with-snmp' '--disable-soap' '--disable-sockets' '--without-sybase' '--without-sybase-ct' '--disable-sysvmsg' '--disable-sysvsem' '--disable-sysvshm' '--without-tidy' '--disable-tokenizer' '--disable-wddx' '--with-xmlrpc' '--with-xsl' '--enable-zip' '--with-zlib' '--disable-debug' '--enable-dba' '--without-cdb' '--with-db4' '--without-flatfile' '--with-gdbm' '--without-inifile' '--without-qdbm' '--with-freetype-dir=/usr' '--with-t1lib=/usr' '--disable-gd-jis-conv' '--with-jpeg-dir=/usr' '--with-png-dir=/usr' '--without-xpm-dir' '--with-gd' '--with-imap' '--with-imap-ssl' '--with-mysql=/usr/lib/mysql' '--with-mysql-sock=/var/run/mysqld/mysqld.sock' '--without-mysqli' '--with-readline' '--without-libedit' '--without-mm' '--without-sqlite' '--with-pic'
Дело в том, что при вызове
 
Код:
iconv('utf8','cp1251', $b);
функция возвращает false. Логи чистые.

function_exists("iconv") возвращает TRUE.

phpinfo() показывает, что iconv присутствует, хотя и php скомпилирован без --with-iconv. Видать где-то подключается как расширение... В php.ini все строки с extension: закомментированы. Откуда берет расширения - не могу понять...
333
08 ноября 2007 года
GHopper
200 / / 28.12.2004
 
Код:
emerge -av php

These are the packages that would be merged, in order:

Calculating dependencies... done!

[ebuild     U ] dev-lang/php-5.2.4_p20070914-r2 [5.2.1-r3] USE="berkdb cli crypt gdbm iconv kerberos* ldap* ncurses nls pcre readline reflection session spell spl ssl truetype unicode xml zlib -adabas -apache2* -bcmath -birdstep -bzip2* -calendar* -cdb -cgi -cjk -concurrentmodphp -ctype -curl -curlwrappers -db2 -dbase -dbmaker -debug -discard-path -doc -empress -empress-bcs -esoob -exif* -fastbuild -fdftk -filter -firebird -flatfile -force-cgi-redirect -frontbase -ftp* -gd* -gd-external -gmp -hash -imap* -inifile -interbase -iodbc -ipv6 -java-external -json -ldap-sasl -libedit -mcve -mhash -msql -mssql* -mysql* -mysqli -oci8 -oci8-instant-client -odbc -pcntl -pdo -pic* -posix -postgres* -qdbm -recode -sapdb -sharedext -sharedmem -simplexml* -snmp* -soap -sockets -solid -sqlite -suhosin -sybase -sybase-ct -sysvipc -threads -tidy -tokenizer -wddx -xmlreader* -xmlrpc* -xmlwriter* -xpm -xsl* -yaz -zip* -zip-external (-apache%) (-pdo-external%)" 7,118 kB

Total: 6 packages (1 upgrade, 4 new, 1 in new slot), Size of downloads: 33,644 kB


iconv отмечено красным цветом.
8
08 ноября 2007 года
mfender
3.5K / / 15.06.2005
Что-то мне подсказывает, что нет кодировки "utf8", а есть "utf-8". И "cp1251" скорее всего тоже функция не понимает. Скорее всего ей понятно будет "windows-1251". Хотя, могу ошибаться.
22K
08 ноября 2007 года
AlKov
28 / / 26.06.2007
Цитата: GHopper

phpinfo() показывает, что iconv присутствует, хотя и php скомпилирован без --with-iconv. Видать где-то подключается как расширение... В php.ini все строки с extension: закомментированы. Откуда берет расширения - не могу понять...


Судя по рекомендации на php.ru,

 
Код:
Установка

Чтобы расширение было доступно, нужно указать ключ --with-iconv[=DIR] при запуске сценария конфигурирования.
Вам необходимо пересобрать php.. Хотя, может есть и другие варианты, но их я не знаю..

P.S. Попробуйте временно включить все ошибки в php.ini (error_reporting = E_ALL). Может ругнется чем-либо понятным..
244
08 ноября 2007 года
UAS
2.0K / / 19.07.2006
iconv("UTF-8","WINDOWS-1251",$text);

ЗЫ:
Цитата:
Арабский (dos) DOS - 720
Арабский (ISO) iso-8859-6
Арабский (Mac) x-mac-arabic
Арабский (Windows) windows-1256
Балтийские языки (DOS) ibm775
Балтийские языки (ISO) iso-8859-4
Греческий (DOS) ibm737
Греческий (ISO) iso-8859-7
Греческий (Mac) x-mac-greek
Греческий (Windows) windows-1252
Греческий современный (DOS) ibm869
Европейский языки x-Europa
Западноевропейские языки (DOS) ibm850
Западноевропейские языки (ISO) iso-8859-1
Западноевропейские языки (Mac) macintosh
Западноевропейские языки (Windows) windows-1252
Кириллица (DOS) cp866
Кириллица (ISO) iso-8859-5
Кириллица (KOI8-R) koi8-r
Кириллица (KOI8-U) koi8-u
Кириллица (Mac) x-mac-cyrillic
Кириллица (Windows) windows-1251
Турецкий (DOS) ibm857
Турецкий (ISO) iso-8859-9
Турецкий (Mac) x-mac-turkish
Турецкий (Windows) windows-1254

22K
08 ноября 2007 года
AlKov
28 / / 26.06.2007
Цитата: UAS
iconv("UTF-8","WINDOWS-1251",$text);



И что Вы хотите этим сказать?? У меня, например, работает и Ваш вариант и вариант топикстартера.. Вот, например, что об этом говорит сама iconv:

 
Код:
# iconv --list
Следующий список содержит все известные встроенные кодировки.  Это не
обязательно означает, что можно использовать любые комбинации данных
имен в параметрах командной строки FROM и TO.  Одна и та же кодировка
может быть перечислена под несколькими именами (псевдонимами).

  437, 500, 500V1, 850, 851, 852....
и т.д. и т.п.. И есть в этом списке и utf8 и UTF-8 и cp1251 и WINDOWS-1251..
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог