Помогите решить проблему с кодировкой

Vano

Новичок
Как такое может быть? mb_detect_encoding($_SERVER['PHP_AUTH_USER']) - UTF-8
А чтобы нормальные символы отображались нужно переводить из windows-1251
mb_convert_encoding($_SERVER['PHP_AUTH_USER'], "UTF-8", "windows-1251");

Из-за этого не могу использовать автоматическую конвертацию

mb_convert_encoding ($str, "UTF-8", mb_detect_encoding($str));
 
Последнее редактирование:

Vano

Новичок
В общем помогло решение
function get_encoding($str){
$cp_list = array('utf-8', 'windows-1251');
foreach ($cp_list as $k=>$codepage){
if (md5($str) === md5(iconv($codepage, $codepage, $str))){
return $codepage;
}
}
return null;
}

Но интересно, это получаеться строка подписана как UTF-8, а на самом деле закодирована в windows1251 и mb_convert_encoding смотрит на подпись? Или mb_convert_encoding просто баранит?)
Чем дальше в лес, тем больше дров
 

accido

Новичок
mb_detect_encoding - не тривиальная функция, вообще, лучше все делать в utf-8 и забить на все остальное, потому что конвертация кодировок, вообще, не тривиальное занятие
вот еще можно почитать http://habrahabr.ru/post/107945/
 
Сверху