Искал по форуму про кодировки но там нет про DOS тексты. Пробовал по разному, не полчается отобразить нормально, все выводится в кракозябрах.
http://ru.wikipedia.org/wiki/CP866 Код (Text): $message = iconv('UTF-8', 'CP866', $message); переводит из UTF-8 в СР866
Спасибо но мне помогло convert_cyr_string($s, 'w', 'a'), пробовал так же convert_cyr_string($s, 'w', 'd') но тексте выводится с некоторыми ошибками, напроимер слово Услуги так-Lслуги. Символ № и заглавные не правильно выводятся. Если точнее надо считать данные из DBF таблиц. Там они как раз хранятся в DOS кодировках.
http://slil.ru/28644603 (50 кб), поле descr. Эта DBF это 1С 7.7 файл, где хранится номенклатура. Можно через ODBC foxpro, тогда все отображается правильно, но желательно именно через конвертацию-iconv или convert_cyr_string.
Напр. 1. Как есть 2. Как выводится через iconv('cp1251','CP866', $s) 1.покраска а/м Мазда 626 заказ № 1055 2.покраска а/м 1.покраска а/м ВАЗ 2105 2.покраска а/м TL
Вот код - dd (можно дать любое имя, но в коде тоже нужно будет поменять) это ODBC dbf. Создается через Панельуправления-Администрирование-ODBC. $odbc = odbc_connect ('dd', '', '') or die('Could Not Connect to ODBC Database!'); $strsql= "SELECT * FROM SC297.dbf "; $query = odbc_exec($odbc, $strsql) or die (odbc_errormsg()); while($row = odbc_fetch_array($query)) { $s = $row['DESCR']; // В зависимости от выбранного драйвера ODBC иногда нужно писать маленькими буквами - descr //$s= convert_cyr_string($s, 'w', 'a') ; $s = iconv('cp1251','CP866', $s); echo $s; } odbc_close($odbc);
а вы смотрели, что у вас в $s перед преобразованием? Код (Text): D:\>php -r "$f = fopen('cp.txt', 'r'); $s = fgets($f); fclose($f); echo $s . ' ' . iconv('cp1251', 'cp866', $s);" яюъЁрёър р/ь ╠рчфр 626 чрърч ╣ 1055 покраска а/м Мазда 626 заказ № 1055
PHP Version 5.2.5 This program makes use of the Zend Scripting Language Engine: Zend Engine v2.2.0, Copyright (c) 1998-2007 Zend Technologies with Xdebug v2.0.2, Copyright (c) 2002-2007, by Derick Rethans iconv support enabled iconv implementation "libiconv" iconv library version 1.9 Directive Local Value Master Value 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 Вроде и настройки такие же...Непойму в чем дело.
гм а что за ¦ ? "яюъЁрёър р/ь ¦рчфр 626 чрърч ¦ 1055" !== "яюъЁрёър р/ь ╠рчфр 626 чрърч ╣ 1055" то есть "покраска а/м ¦азда 626 заказ ¦ 1055" !== "покраска а/м Мазда 626 заказ № 1055" вот и спотыкается на первом странном символе