Я получаю некоторые странные символы из ldap-сервера, когда я ищу какое-то значение user.if для пользователя. Это значение содержит турецкие символы, такие как "ç", он заменяет " ". В этой ситуации я конвертирую строку в utf-8, чем str_replace, чтобы исправить ее. Моя функция в том, что;
function utf8char($str) {
$search = array('Ý','ý', 'þ' ,'Þ' ,'ð','Ð');
$replace = array('İ' ,'ı' ,'ş','Ş','ğ','Ğ');
return str_replace($search, $replace, $str);
}
Но иногда это вызывает некоторые проблемы, поэтому мне нужно определить, содержит ли строка символ " ", чтобы исправить ее. Strpos не работает. Кто-нибудь может что-то сказать об этом? И что это за чертовщина, я был бы рад, если кто-нибудь сможет объяснить...
Изменение: Вот мой фрагмент кода;
$name = $ldapHandler->get_user_info('username')['name'];
echo $name;
echo utf8_decode($name);
echo mb_convert_encoding($name,'utf-8');
echo utf8char(mb_convert_encoding($name,'utf-8'));
и вывод этого кода;
Bilgi ��lem Daire Ba�kanl���
Bilgi ?lem Daire Ba?kanl??
Bilgi Ýþlem Daire Baþkanlýðý
Bilgi İşlem Daire Başkanlığı (this is the correct string)
используйте utf8_encode(), сохраняя его в db. и в то время, когда вы используете utf8_decode().
echo utf8_encode($name)
?