![]() |
Модераторы: Aliance, skyboy, MoLeX, ksnk |
![]() ![]() ![]() |
|
Alagert |
|
||||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 129 Регистрация: 25.8.2005 Где: Санкт-Петербург Репутация: нет Всего: 1 |
Всем доброго времени суток!
Выпало мне заниматься поддержкой одного решения на PHP в силу отпуска одного из сотрудников и, как водится, в это самое время полезли проблемы ![]() В целом задача выглядит следующим образом: спросить сервер по указанному урлу, получить от него ответ в виде строки текста:
Распарсить ее. Все выглядит просто ![]() Собственно код:
В результате имеем следующий ответ:
Вопрос: почему части ответа стали представляться в ASCII? Как правильно обработать эту ситуацию. ЗЫ. В PHP нуб ![]() --------------------
[color=blue]BORN TO BE ROOT#[/color] |
||||||
|
|||||||
krypt3r |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 359 Регистрация: 9.6.2009 Репутация: 1 Всего: 16 |
Текст, состоящий только из символов с номером меньше 128, при записи в UTF-8 превращается в обычный текст ASCII. И наоборот, в тексте UTF-8 любой байт со значением меньше 128 изображает символ ASCII с тем же кодом.
Юзайте UTF-8 only |
|||
|
||||
sTa1kEr |
|
|||
9/10 программиста ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1553 Регистрация: 21.2.2007 Репутация: 5 Всего: 146 |
Алгоритм работы mb_detect_encoding() следующий: 1. Функция получает порядок которому будет следовать при определении кодировки. Этот порядок можно задать при помощи mb_detect_order() или вторым параметром самой функции. 2. Берет следующую по списку кодировку и проверяет все ли символы из заданной строки валидны для этой кодировки. 2a. Если все символы валидны, то возвращает эту кодировку. 2b. Если хотя бы один символ не валиден , то идет к пункту 2. А так как по умолчанию порядок кодировок 'ASCII, JIS, UTF-8, EUC-JP, SJIS', то эта функция для латиницы будет возвращать ASCII (т.к. по стандарту все символы US-ASCII валидны так же и для UTF-8). Это зависит от того, чего вы хотите добиться. PS Мндэ. Порой в вики такую ересь понапишут =\ Это сообщение отредактировал(а) sTa1kEr - 23.10.2009, 10:23 |
|||
|
||||
![]() ![]() ![]() |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | PHP: Тексты | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |