![]() |
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]() ![]() ![]() |
|
Nickname |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 246 Регистрация: 24.10.2006 Где: Санкт-Петербург Репутация: нет Всего: 1 |
Здрасте. Я все парюсь с кодировками - нужно распарсить excel-евский файл. Использую PHP Excel Parser Pro - он все реально распарсивает, но результаты отдает в виде таких строк:
Свободные остатки ТМЦ на складах что в оригинале звучит как: Свободные остатки ТМЦ на складах Можно ли как-то привести все к нормальному виду (как в оригинале), т.е. русскими буквами, а не какойто билебеодой? |
|||
|
||||
MoLeX |
|
|||
![]() Местный пингвин ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 4076 Регистрация: 17.5.2007 Репутация: 46 Всего: 140 |
Nickname, на локалке фсе исправилось после того как воспользовался echo""
или тебя не устраивает что приходится им пользоваться? -------------------- Amazing ![]() |
|||
|
||||
Nickname |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 246 Регистрация: 24.10.2006 Где: Санкт-Петербург Репутация: нет Всего: 1 |
На самом деле все красиво выводится - русскими и т.д., но если заглянуть в генерируемый код HTML, то там будет именно эта билеберда - не буду же я в таком виде сохранять в БД? Вот и хотелось бы узнать как это исправить. |
|||
|
||||
MoLeX |
|
|||
![]() Местный пингвин ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 4076 Регистрация: 17.5.2007 Репутация: 46 Всего: 140 |
скорей всего в скрипте имеется отвечающая за шифрование символов.
Это сообщение отредактировал(а) MoLeX - 1.10.2007, 15:47 -------------------- Amazing ![]() |
|||
|
||||
Nickname |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 246 Регистрация: 24.10.2006 Где: Санкт-Петербург Репутация: нет Всего: 1 |
||||
|
||||
sTa1kEr |
|
|||
9/10 программиста ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1553 Регистрация: 21.2.2007 Репутация: 56 Всего: 146 |
Мда... iconv и mb_convert и htmlentities уже не в моде? К тому же не правильно функция преобразовывает в HTML сущности, не хватает точки запятой в конце. Советую вместо этой функции использовать iconv() или еще лучше работать полностью в UTF-8. |
|||
|
||||
ewolf |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 389 Регистрация: 15.8.2006 Где: г. Москва Репутация: 8 Всего: 18 |
Nickname, перед вами текст, представленный в виде HTML-кодов символов.
Для их декодирования используется функция html_entity_decode() |
|||
|
||||
sTa1kEr |
|
|||
9/10 программиста ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1553 Регистрация: 21.2.2007 Репутация: 56 Всего: 146 |
||||
|
||||
Nickname |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 246 Регистрация: 24.10.2006 Где: Санкт-Петербург Репутация: нет Всего: 1 |
Не помогло, даже если поставить ";" в конце каждого кода. Пробовал iconv(), но в результате получается так, как описал в этом топике Короче не буду вас отвлекать - попробую разобраться с кодом парсера сам. |
|||
|
||||
MoLeX |
|
|||
![]() Местный пингвин ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 4076 Регистрация: 17.5.2007 Репутация: 46 Всего: 140 |
Nickname, у одного знакомого была почти такая же ситуация и не чего лучшего он не придумаф решил побаловаться str_replace (т.е. с помощью ее заменял хтмл-символы на русские буквы), это тоже по сути выход но уж слишкой извращенный
![]() -------------------- Amazing ![]() |
|||
|
||||
Nickname |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 246 Регистрация: 24.10.2006 Где: Санкт-Петербург Репутация: нет Всего: 1 |
Да запарно получается - нужно заменить все русские (строчные и заглавные), английские и знаки пунктуации... Где бы посмотреть соответствие символа коду символа? |
|||
|
||||
MoLeX |
|
|||
![]() Местный пингвин ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 4076 Регистрация: 17.5.2007 Репутация: 46 Всего: 140 |
методом научного тыка, шутка
![]() -------------------- Amazing ![]() |
|||
|
||||
Nickname |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 246 Регистрация: 24.10.2006 Где: Санкт-Петербург Репутация: нет Всего: 1 |
||||
|
||||
Nickname |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 246 Регистрация: 24.10.2006 Где: Санкт-Петербург Репутация: нет Всего: 1 |
А можно это сделать как-нибудь через MySQL?
|
|||
|
||||
sTa1kEr |
|
||||||
9/10 программиста ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1553 Регистрация: 21.2.2007 Репутация: 56 Всего: 146 |
Лучше методом логическово размышления. Итак во первых, судя по функции uc2html(), данные приходят в Unicode, скорее всего в UTF-8. Во вторых, в эту функцию надо добавить ';', только тогда это будут корректные HTML сущности
В 3их, в какую кодировку вы ходите перекодировать? Если в Windows-1251, то из HTML сущностей это можно сделать так
Если вам не нужны HTML сущности, то можно сразу перекодировать из UTF-8
Добавлено через 2 минуты и 44 секунды Можно, но использование разных кодировок в одном скрипте грозит еще большей путаницей, т.ч. крайне не советую. Лучше полностью переходите на UTF-8 либо данные из парсера сразу перекодируйте в нужную вам кодировку. |
||||||
|
|||||||
sTa1kEr |
|
|||
9/10 программиста ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1553 Регистрация: 21.2.2007 Репутация: 56 Всего: 146 |
Хотя по поводу UTF-8 наврал... Здесь всегда используется 2 байта на символ, а в UTF-8 может быть переменное число байт. Скорее всего это UTF-16. Т.ч. перекодировать надо так
|
|||
|
||||
Nickname |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 246 Регистрация: 24.10.2006 Где: Санкт-Петербург Репутация: нет Всего: 1 |
В прицепе это помогло - все русские буквы стали русскими, но латинские так и остались html-сущностями (причем только в строках где есть и латинские и русские буквы вперемешку) - осталось только этот баг исправить и можно смело идти пить кофе... Это сообщение отредактировал(а) Nickname - 2.10.2007, 10:58 |
|||
|
||||
Nickname |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 246 Регистрация: 24.10.2006 Где: Санкт-Петербург Репутация: нет Всего: 1 |
Все разобрался, спасибо огромное - просто подставил
и все заработало. |
|||
|
||||
sTa1kEr |
|
||||||
9/10 программиста ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1553 Регистрация: 21.2.2007 Репутация: 56 Всего: 146 |
Выдает
Т.е. ваш парсер возвращает данные в кодировке UTF-16 с обратным порядком байт. Считайте, что это и есть ответ на вопрос вашей предыдущей темы. Т.ч. я бы все таки посоветовал не из html сущностей перекодировать, а сразу из UTF-16. Зачем делать лишнюю работу?
|
||||||
|
|||||||
Nickname |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 246 Регистрация: 24.10.2006 Где: Санкт-Петербург Репутация: нет Всего: 1 |
Блин то что надо, Stalker, + в репутацию
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "PHP" | |
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |