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 :: Версия для печати :: как дать кодировку UTF-8
Форумы портала PHP.SU » » XML и его обработка » как дать кодировку UTF-8

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

1. Алексеей - 13 Января, 2012 - 17:18:58 - перейти к сообщению
Я загружаю xml файл на страницу, с помощью php, таким образом:

PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. $sxe = new SimpleXMLElement('myfile.xml', NULL, TRUE);
  3. echo $sxe->asXML();
  4. ?>

В этом файле находится список тех кто онлайн на сайте, (пользователи) и если ник пользователя написано по русский, то показывает вот таким образом:
мир_младший
А те что на английском то все нормально, и в конце всего списка на странице показывает вот это: ]]>
как все это исправить ? и имею виду, что на странице я использую кодировку windows-1251, и его просто нельзя убирать, или можно дать условия дать на определения кодировок ? чтобы не было проблем ?
пожалуйста помогите разобраться Улыбка
2. EuGen - 13 Января, 2012 - 17:48:42 - перейти к сообщению
Ничего не понял. Вероятно, http://php.su/functions/?iconv и http://php.su/functions/?mb_detect_encoding
3. Алексеей - 13 Января, 2012 - 18:06:38 - перейти к сообщению
EuGen, Не помогло, мне нужно чтобы скрипт определял кодировку страницы, например если UTF-8 то сменит ее на windows-1251
4. EuGen - 13 Января, 2012 - 20:00:55 - перейти к сообщению
Так и есть mb_detect_encoding
Список кодировок не забудьте задать в параметрах.
5. Алексеей - 13 Января, 2012 - 20:38:15 - перейти к сообщению
EuGen, извините, но дайте готовый скрипт, я не могу сам реализовать Огорчение
уже учу php, думаю скором времени научусь, но вот в данный момент этот код для меня важен, так как на странице некоторые строки такие: РјРёСЂ_младший
(Добавление)
пожалуйста
6. vectorserver - 14 Января, 2012 - 01:52:02 - перейти к сообщению
Алексеей пишет:
В этом файле находится список тех кто онлайн на сайте, (пользователи) и если ник пользователя написано по русский, то показывает вот таким образом:
мир_младший


PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. header('Content-Type: text/html; charset=windows-1251');
  4. $sxe = new SimpleXMLElement('myfile.xml', NULL, TRUE);
  5.  
  6. echo $sxe->asXML();
  7.  
  8. ?>


Так не!?
7. Алексеей - 14 Января, 2012 - 07:17:16 - перейти к сообщению
vectorserver, не помогло, дело в том что внутри того файла уже есть кодировка:
CODE (htmlphp):
скопировать код в буфер обмена
  1. <?xml version="1.0" encoding="UTF-8"?>

но я его не могу убрать, т.к. там файл с cms ucoz'а
скажите пожалуйста, есть какие то варианты чтобы все слова нормально отображались ? а не так: Кирилл
8. vectorserver - 14 Января, 2012 - 19:08:56 - перейти к сообщению
Алексеей пишет:
vectorserver, не помогло, дело в том что внутри того файла уже есть кодировка:
CODE (htmlphp):
скопировать код в буфер обмена
  1. <?xml version="1.0" encoding="UTF-8"?>

но я его не могу убрать, т.к. там файл с cms ucoz'а
скажите пожалуйста, есть какие то варианты чтобы все слова нормально отображались ? а не так: Кирилл



Тогда так:
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2.  
  3. header('Content-Type: text/html; charset=windows-1251');
  4.  
  5. $sxe = new SimpleXMLElement('myfile.xml', NULL, TRUE);
  6.  
  7. $out = $str=iconv("UTF-8", "CP1251",$sxe->asXML());
  8.  
  9. echo $out;
  10.  
  11. ?>
9. Алексеей - 14 Января, 2012 - 20:28:57 - перейти к сообщению
vectorserver, Уряя! Улыбка огромное вам спасибо за помощь! Все работает.

 

Powered by ExBB FM 1.0 RC1