Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Как сделать следующее условие...
Форумы портала PHP.SU » » Кодировки и все смежное » Как сделать следующее условие...

Страниц (1): [1]
 

1. gs2309 - 14 Февраля, 2012 - 13:29:50 - перейти к сообщению
Добрый день.
Подскажите, пожалуйста, как можно сделать следующее:
есть строка в переменной. Например:

Нужно сделать так:
PHP:
скопировать код в буфер обмена
  1. if(если строка в utf-8){
  2. то, преобразуем строку в windows-1251
  3. }

Интересует условие.
Заранее спасибо.
2. EuGen - 14 Февраля, 2012 - 13:35:23 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1. if(mb_detect_encoding($str, array('Windows-1251', 'UTF-8'))=='UTF-8')
  2. {
  3.    $str=iconv('UTF-8', 'Windows-1251', $str);
  4. }

?
3. gs2309 - 14 Февраля, 2012 - 13:58:25 - перейти к сообщению
Как то не помогает.
Попробую объяснить более детально.
Мне приходят строки с разных ресурсов, у которых разная кодировка.
Те строки, которые с сайтов в windows-1251 выводятся корректно, а строки с сайтов в utf-8 выводятся криво. Пофиксить не получается.
4. snikers987 - 14 Февраля, 2012 - 14:25:33 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1. if(iconv('UTF-8', 'Windows-1251', $str))
  2. {
  3.    $str=iconv('UTF-8', 'Windows-1251', $str);
  4. }

Может так?
5. gs2309 - 14 Февраля, 2012 - 14:35:48 - перейти к сообщению
Цитата:
Может так?

Чуть позже отпишусь о результате.)))
А может ли быть загвоздка в хостере, например?
6. gs2309 - 15 Февраля, 2012 - 10:26:10 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1. Чуть позже отпишусь о результате.)))

Потестил. В принципе работает, но есть косяк - довольно часто обрезает русские символы и показывает только латиницу.

 

Powered by ExBB FM 1.0 RC1