Модераторы: skyboy, MoLeX, Aliance, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проблема с кодировкой, перекодировать надо 
:(
    Опции темы
motorway
Дата 14.10.2009, 22:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 578
Регистрация: 2.3.2008

Репутация: 1
Всего: 0



Скрипт PHP выводит на странице вместо русских букв Èãðîê. Файл сохранен в UTF-8, эти данные берутся из базы тоже в UTF-8.
Смотрел в декодере Лебедева - там написано, что нужно преобразование из CP-1252 -> CP-1251.
Что надо написать в скрипте, чтобы это стало работать в UTF-8? 

Это сообщение отредактировал(а) motorway - 14.10.2009, 22:40
PM MAIL   Вверх
Ипатьев
Дата 14.10.2009, 23:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2232
Регистрация: 5.7.2009

Репутация: 28
Всего: 37



SET NAMES скорее всего

Это сообщение отредактировал(а) Ипатьев - 14.10.2009, 23:03
PM MAIL   Вверх
skyboy
Дата 15.10.2009, 09:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 75
Всего: 260



Цитата(motorway @  14.10.2009,  21:40 Найти цитируемый пост)
Èãðîê

htmlentities в коде используется?
PM MAIL   Вверх
motorway
Дата 15.10.2009, 14:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 578
Регистрация: 2.3.2008

Репутация: 1
Всего: 0



Поскольку сайт не мой, у меня довольно ограниченный доступ ко всему этому. Используется такая функция:

Код

function htmlformat($string) {
    $resp = "";
    for ($i = 0; isset($string[$i]) && ord($string[$i]) > 0; $i++)
        $resp .= "&#".ord($string[$i]).";";
    return $resp;
}

PM MAIL   Вверх
Ипатьев
Дата 15.10.2009, 14:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2232
Регистрация: 5.7.2009

Репутация: 28
Всего: 37



Цитата(motorway @  15.10.2009,  14:24 Найти цитируемый пост)
Используется такая функция

а зачем?!
PM MAIL   Вверх
motorway
Дата 15.10.2009, 14:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 578
Регистрация: 2.3.2008

Репутация: 1
Всего: 0



Этого я не знаю. В код не влезал, у меня была задача исправить кодировку. Думаю, сначала имело бы смысл попробовать сделать это, не влезая в другие функции.

Добавлено через 1 минуту и 39 секунд
Возможно, именно она все портит

Добавлено через 2 минуты и 32 секунды
Но при этом, наверно, должен быть способ перекодировать в нужную кодировку, не зная, что используется эта функция. Просто - на входе текст в плохой кодировке, на выходе русский текст
PM MAIL   Вверх
Ипатьев
Дата 15.10.2009, 15:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2232
Регистрация: 5.7.2009

Репутация: 28
Всего: 37



вы имеете в виду, есть ли способ раскодировать то, что наделала эта функция, обратно?
PM MAIL   Вверх
motorway
Дата 15.10.2009, 15:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 578
Регистрация: 2.3.2008

Репутация: 1
Всего: 0



Я не знаю, из-за чего это - из-за этой ли функции или чего-то другого. Понятно, что можно ее попробовать убрать. Но мне было бы интересно и понять как, имея такую строку на входе, раскодировать ее в русский текст. Допустим, строка просто пришла откуда-то, и никаких функций нет, т.е. неизвестно, как получилась такая строка.

Это сообщение отредактировал(а) motorway - 15.10.2009, 15:05
PM MAIL   Вверх
Ипатьев
Дата 15.10.2009, 15:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2232
Регистрация: 5.7.2009

Репутация: 28
Всего: 37



"такую" - это какую?
сдается мне, вы хотите что-то раскодировать, но не очень хорошо представляете - что именно.
PM MAIL   Вверх
motorway
Дата 15.10.2009, 15:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 578
Регистрация: 2.3.2008

Репутация: 1
Всего: 0



Èãðîê, разумеется.
PM MAIL   Вверх
Ипатьев
Дата 15.10.2009, 15:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2232
Регистрация: 5.7.2009

Репутация: 28
Всего: 37



Судя по приведенному коду, у вас нет такой строки.
PM MAIL   Вверх
motorway
Дата 15.10.2009, 16:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 578
Регистрация: 2.3.2008

Репутация: 1
Всего: 0



В смысле? Я еще в первом посте написал, что появляется такая строка. Эту функцию я привел в ответ на вопрос о htmlentities. Здесь что-то близкое - htmlformat. По крайней мере, максимально соответствует вопросу из того, что я нашел в коде.
Делается запрос к базе, и потом при выводе используется эта функция. А дальше только echo.
В любом случае на выходе вместо русских букв получается Èãðîê. Разве что-то непонятно? Или вы пытаетесь намекнуть на афоризм Пруткова о том, что не надо верить своим глазам?
PM MAIL   Вверх
Ипатьев
Дата 15.10.2009, 16:32 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2232
Регистрация: 5.7.2009

Репутация: 28
Всего: 37



Афоризм Пруткова говорит о том, что глазам наоборот надо верить. Это ирония.
Просто надо понимать, куда смотреть. Не на вывеску, а на клетку.

Вас не смущает, что в коде функции видны разные странные символы? Например & или #.
PM MAIL   Вверх
motorway
Дата 15.10.2009, 16:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 578
Регистрация: 2.3.2008

Репутация: 1
Всего: 0



Если бы я знал, чем руководствовался автор этого кода, может, и смутило бы. Да и то, здесь проблема такая, что можно быть спокойным. Это не катастрофа.
Я вижу, что зачем-то идет перекодировка, если протестировать эту функцию.
Но вы не отвечаете на вопрос, что делать, если мы вообще не знаем про этот код, а строка нам просто задана
PM MAIL   Вверх
Ипатьев
Дата 15.10.2009, 16:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2232
Регистрация: 5.7.2009

Репутация: 28
Всего: 37



Сначала надо разобраться, какая нам задана строка.
Дело не в авторе кода, а в самом коде. Вы совсем РНР не знаете, не понимаете, что она делает?
И вас совершенно не смущает тот факт, что она выводит & и #, а вы их не видите?
PM MAIL   Вверх
Страницы: (3) Все [1] 2 3 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0550 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.