с кодировками проблемы

Василий М.

Новичок
есть строка в таблице. нужно отдать в XML. php 5.3

PHP:
mb_detect_encoding($string); // UTF-8
$string = iconv('utf-8', 'windows-1251//ignore', $string);
var_dump($string); // false, WTF??
используем mb_

PHP:
echo mb_detect_encoding($string); // UTF-8
$string = mb_convert_encoding($string, 'Windows-1251');
var_dump($string); // ????? ?????????? ?????????????? ?????. ????? ???????? ?????? ?????
echo mb_detect_encoding($string); // ASCII
в какую сторону копать, что делать?
 

sobachnik

Новичок
Функция mb_detect_encoding() может ошибаться. Вообще, на сколько я знаю, не существует такого алгоритма, который позволил бы определить кодировку исходного текста со 100% гарантией. На сколько помню, есть алгоритмы, которые практически не ошибаются, основанные на статистике частоты встречаемости слогов, но в php (опять-таки, на сколько мне известно) нет стандартных функций, работающих по таким алгоритмам. Да и они опять же могут ошибиться, к примеру, если текст был набран с ошибочно нажатым капсом.
 
Сверху