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

Поиск:

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


Опытный
**


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

Репутация: 9
Всего: 13



motorway, 
а что получает функция на входе?
Код


function htmlformat($string) {
    echo '<pre>';
    var_dump($string);
    echo '</pre>';

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


Что покажет такой код?

Ипатьев  опять синхронно  smile 

Это сообщение отредактировал(а) capitan - 15.10.2009, 16:46
PM MAIL WWW ICQ   Вверх
motorway
Дата 15.10.2009, 16:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



По порядковому номеру символа получает его ASCII код, а дальше выводит символы. Насколько я помню, в HTML можно задавать символы в таком виде: &#... , и они будут преобразованы в букву.
PM MAIL   Вверх
Ипатьев
Дата 15.10.2009, 16:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



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


Опытный
**


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

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



На входе она получает какую-то строку из результата запроса из базы:

Код

while ($line = $result->fetch_row()) {
        $charname = htmlformat($line[0]);


Поскольку автор кода попался кабан, то проверить я не могу. Он хочет пробовать только сам, что я ему напишу.

Добавлено через 2 минуты и 29 секунд
Цитата

Отлично.
Так какую строку вы, в итоге, хотите перекодировать? 

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


Эксперт
****


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

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



Цитата(motorway @  15.10.2009,  16:50 Найти цитируемый пост)
в виде тех букв, которые я писал 

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


Опытный
**


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

Репутация: 9
Всего: 13



Ну раз для кодирования используется функция ord()  http://ru2.php.net/manual/en/function.ord.php  , думаю логично для декодирования должна использоваться chr() http://ru2.php.net/manual/en/function.chr.php
PM MAIL WWW ICQ   Вверх
motorway
Дата 15.10.2009, 16:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



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


Эксперт
****


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

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



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


Опытный
**


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

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



Вы издеваетесь? Где нет? В браузере есть.

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


Эксперт
****


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

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



В результате выполнения скрипта получается совсем другая строка.
PM MAIL   Вверх
capitan
Дата 15.10.2009, 17:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

Репутация: 9
Всего: 13



motorway,  при чем тут браузер? Пустите вывод в файл и скажите что в нем будет. Èãðîê - это совсем не UTF-8 как вы пишите. Или в таком формате все лежит в базе?
PM MAIL WWW ICQ   Вверх
motorway
Дата 15.10.2009, 17:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Да, в базе в UTF-8. Проверить на сервере я не могу. А на своем компе могу только пробовать написать функцию перекодировки Èãðîê. 
Цитата

при чем тут браузер?

Потому что именно в нем я вижу рез-ты работы скрипта. Когда вы заходите на сайт, вам нужно, чтобы работало в браузере, а не в файле.
Основной текст на странице на русском в UTF-8 и выводится правильно. Эта часть выводится так Èãðîê.
Цитата

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

Может, подскажете, какая? Вы - телепат?

Это сообщение отредактировал(а) motorway - 15.10.2009, 17:38
PM MAIL   Вверх
capitan
Дата 15.10.2009, 17:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

Репутация: 9
Всего: 13



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


Опытный
**


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

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



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


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


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

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



Цитата(motorway @  15.10.2009,  16:36 Найти цитируемый пост)
Может, подскажете, какая? Вы - телепат?

Ипатьев терпеливо подводил к мысли заглянуть в исходный код страницы, а не копировать то, как интерпретирует код браузер. Потому что если PHP генерирует HTML-код, который затем отображается браузером. И смотреть в обработанный браузером текст - то же самое, что играть в "испорченный телефон" - чем больше звеньев, тем сильнее "шумы" и дополнительные влияющие факторы.
В исходном коде страницы, как подсказывают мне мои телепатические навыки, должно встретиться "Èãðîê" 
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.0553 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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