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

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Запись кириллических переменных в файл

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Без описания
alezu
Отправлено: 04 Августа, 2015 - 18:55:12
Post Id


Новичок


Покинул форум
Сообщений всего: 3
Дата рег-ции: Авг. 2015  


Помог: 0 раз(а)




Пытаюсь записать массив, содержащий кириллические символы, в файл.
Строка выглядит примерно так:
file_put_contents('file.inc', var_export($array,true))
На выходе среди прочего вместо текста получаю вот такое:
'&#1055&#1086&#1082&#1088&#1072&#1089&#1082&#1072&#32&#1085&#1086&#1074&#1086&#1081&#32&#1076&#1077&#1090&#1072&#1083&#1080'
Как можно добиться более привычной записи?
 
 Top
lawer85
Отправлено: 05 Августа, 2015 - 13:12:13
Post Id


Частый гость


Покинул форум
Сообщений всего: 189
Дата рег-ции: Янв. 2013  


Помог: 1 раз(а)




Надо указать верную кодировку допустим через файл .htaccess

AddDefaultCharset utf-8
 
 Top
alezu
Отправлено: 05 Августа, 2015 - 13:25:01
Post Id


Новичок


Покинул форум
Сообщений всего: 3
Дата рег-ции: Авг. 2015  


Помог: 0 раз(а)




lawer85 пишет:
Надо указать верную кодировку допустим через файл .htaccess

AddDefaultCharset utf-8


Кодировка в htaccess проставлена. Доп. информация - сохраняемая строка получается парсингом xml с помощью скрипта PHP Excel parser pro 4.5, то есть, я так понимаю, представление в таком виде - его рук дело, повлиять на это я не могу и моя задача, так или иначе, сводится к конвертации сего (правильно ли я понимаю, что это Unicode?) в удобочитаемый вид.

(Отредактировано автором: 05 Августа, 2015 - 13:25:35)

 
 Top
andrewkard
Отправлено: 05 Августа, 2015 - 13:48:33
Post Id


Участник


Покинул форум
Сообщений всего: 1372
Дата рег-ции: Нояб. 2014  


Помог: 30 раз(а)




alezu
Проверьте в какой кодировке данные заходят и перекодируйте в utf-8 или в ту которая нужна
 
 Top
alezu
Отправлено: 05 Августа, 2015 - 14:55:34
Post Id


Новичок


Покинул форум
Сообщений всего: 3
Дата рег-ции: Авг. 2015  


Помог: 0 раз(а)




В итоге обнаружилось, что полученные из xls-файла строки обрабатывались посимвольно с переводом в ASCII-код следующим образом:

PHP:
скопировать код в буфер обмена
  1. function uc2html($str) {
  2.       $ret = '';
  3.       for ($i = 0; $i < strlen($str) / 2; $i++) {
  4.         $charcode = ord($str[$i * 2]) + 256 * ord($str[$i * 2 + 1]);
  5.         $ret .= '&#' . $charcode;
  6.       }
  7.       return $ret;
  8.     }


Я добавил точку с запятой в код каждого символа ($ret .= '&#' . $charcode . ';';), после чего такая строка стала нормально обрабатываться функцией html_entity_decode().

В общем, профит...
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB