ФорумПрограммированиеPHP для идиотов → проблема кодировки Dxxx

проблема кодировки Dxxx

  • mvp

    Сообщения: 29 Репутация: N Группа: Кто попало

    Spritz 9 августа 2010 г. 2:12

    сервер вместо русского текста возвращает:
    D0B2D0B0D184D0BBD0B820with20D180D18BD0B1D0BAD0BED0B9
    (текст содержит 2 русских слова и одно английское + 2 пробела)

    как бы это чудо перекодировать обратно в русский?
    может у кого есть готовый метод :)

    спасибо!
  • disc

    Сообщения: 843 Репутация: N Группа: Джедаи

    Spritz 9 августа 2010 г. 2:44, спустя 31 минуту 59 секунд

    какой сервер и какой там скрипт?
  • adw0rd

    Сообщения: 22905 Репутация: N Группа: в ухо

    Spritz 9 августа 2010 г. 2:46, спустя 2 минуты 26 секунд

    Где он его возвращает?
    adw/0
  • mvp

    Сообщения: 29 Репутация: N Группа: Кто попало

    Spritz 9 августа 2010 г. 3:00, спустя 13 минут 37 секунд

    смотрел на apache и nginx. результат тот же
    возвращается из фреймворка yii (php), который формирует из GET - строку: контроллер/экшен/всякое…
    когда я передаю во "всякое" что-то по-русски оно мне рисует D-подобные символы
    кодировка на сервере везде UTF8, все скрипты UTF8..

    нужен метод-конвертор из d-кодировки в любую русско читаемую.
    своих мыслей нет :(

    уже есть таблица соответствия:

    $letters = array(
    "d090" => 'А', "d091" => 'Б', "d092" => 'В' ,
    "d093" => 'Г', "d094" => 'Д', "d095" => 'Е' ,
    "d096" => 'Ж', "d097" => 'З', "d098" => 'И' ,
    "d099" => 'Й', "d09a" => 'К', "d09b"=> 'Л' ,
    "d09c" => 'М', "d09d" => 'Н', "d09e" => 'О',
    "d09f" => 'П', "d0a0" => 'Р', "d0a1" => 'С',
    "d0a2" => 'Т', "d0a3" => 'У', "d0a4" => 'Ф',
    "d0a5" => 'Х', "d0a6" => 'Ц', "d0a7" => 'Ч',
    "d0a8" => 'Ш', "d0a9" => 'Щ', "d0aa" => 'Ъ',
    "d0ab" => 'Ы', "d0ac" => 'Ь', "d0ad" => 'Э',
    "d0ae" => 'Ю', "d0af" => 'Я', "d0b0" => 'а',
    "d0b1" => 'б', "d0b2" => 'в', "d0b3" => 'г',
    "d0b4" => 'д', "d0b5" => 'е', "d0b6" => 'ж',
    "d0b7" => 'з', "d0b8" => 'и', "d0b9" => 'й',
    "d0ba" => 'к', "d0bb" => 'л', "d0bc" => 'м',
    "d0bd" => 'н', "d0be" => 'о', "d0bf" => 'п',
    "d180" => 'р', "d181" => 'с', "d182" => 'т',
    "d183" => 'у', "d184" => 'ф', "d185" => 'х',
    "d186" => 'ц', "d187" => 'ч', "d188" => 'ш',
    "d189" => 'щ', "d18a" => 'ъ', "d18b" => 'ы',
    "d18c" => 'ь', "d18d" => 'э', "d18e" => 'ю',
    "d18f" => 'я', "d084" => 'Є', "d194" => 'є',
    "d087" => 'Ї', "d197" => 'ї', "d086" => 'І',
    "d196" => 'і'
    );

    проблема в том, что разбивать строку на части по D нельзя, ибо на х16, те D может попадаться не в начале. например "н" = "d0bd"

    думаю, дело не в дыме…. :)
  • adw0rd

    Сообщения: 22905 Репутация: N Группа: в ухо

    Spritz 9 августа 2010 г. 3:19, спустя 19 минут 3 секунды

    дайте ссылку на сайт
    adw/0
  • artoodetoo

    Сообщения: 5139 Репутация: N Группа: в ухо

    Spritz 9 августа 2010 г. 3:42, спустя 23 минуты 27 секунд

    обфускатор русского текста на пiха.ру
    ιιlllιlllι унц-унц
  • adw0rd

    Сообщения: 22905 Репутация: N Группа: в ухо

    Spritz 9 августа 2010 г. 3:45, спустя 3 минуты 15 секунд

    уже есть таблица соответствия:

    $letters = array(
    "d090" => 'А', "d091" => 'Б', "d092" => 'В' ,
    "d093" => 'Г', "d094" => 'Д', "d095" => 'Е' ,
    "d096" => 'Ж', "d097" => 'З', "d098" => 'И' ,
    "d099" => 'Й', "d09a" => 'К', "d09b"=> 'Л' ,
    "d09c" => 'М', "d09d" => 'Н', "d09e" => 'О',
    "d09f" => 'П', "d0a0" => 'Р', "d0a1" => 'С',
    "d0a2" => 'Т', "d0a3" => 'У', "d0a4" => 'Ф',
    "d0a5" => 'Х', "d0a6" => 'Ц', "d0a7" => 'Ч',
    "d0a8" => 'Ш', "d0a9" => 'Щ', "d0aa" => 'Ъ',
    "d0ab" => 'Ы', "d0ac" => 'Ь', "d0ad" => 'Э',
    "d0ae" => 'Ю', "d0af" => 'Я', "d0b0" => 'а',
    "d0b1" => 'б', "d0b2" => 'в', "d0b3" => 'г',
    "d0b4" => 'д', "d0b5" => 'е', "d0b6" => 'ж',
    "d0b7" => 'з', "d0b8" => 'и', "d0b9" => 'й',
    "d0ba" => 'к', "d0bb" => 'л', "d0bc" => 'м',
    "d0bd" => 'н', "d0be" => 'о', "d0bf" => 'п',
    "d180" => 'р', "d181" => 'с', "d182" => 'т',
    "d183" => 'у', "d184" => 'ф', "d185" => 'х',
    "d186" => 'ц', "d187" => 'ч', "d188" => 'ш',
    "d189" => 'щ', "d18a" => 'ъ', "d18b" => 'ы',
    "d18c" => 'ь', "d18d" => 'э', "d18e" => 'ю',
    "d18f" => 'я', "d084" => 'Є', "d194" => 'є',
    "d087" => 'Ї', "d197" => 'ї', "d086" => 'І',
    "d196" => 'і'
    );


    проблема в том, что разбивать строку на части по D нельзя, ибо на х16, те D может попадаться не в начале. например "н" = "d0bd"


    дело в том, что если в строке будет например хеш d188w39f92382id293d… то у вас будет "шw39f92382id293d"
    Спустя 45 сек.
    я вам рекомендую разобраться с проблемой вывода хекса, а не чинить его после
    adw/0
  • artoodetoo

    Сообщения: 5139 Репутация: N Группа: в ухо

    Spritz 9 августа 2010 г. 3:53, спустя 7 минут 13 секунд

    помоему это китайский транслит. нехуй тут раскодировать, просто не надо кодировать. в программу не судьба заглянуть?
    ιιlllιlllι унц-унц
  • mvp

    Сообщения: 29 Репутация: N Группа: Кто попало

    Spritz 9 августа 2010 г. 4:30, спустя 37 минут 41 секунду

    сайта нет (может и не будет).. это на локалхосте. :)

    хеша в обработчике не будет точно - это невозможно, так как каждый контроллер имеет свои экшены, и каждый экшен знает что к нему приходит (те ждать русский или не ждать). те ситуация вызова метода - ноль.
    автоперекодировщик не нужен!

    кодирует либо сервак сам по себе, либо yii. китайский тут не при чем.
    в любом случае трогать фреймворк руками и, тем более, сервер не стоит (мало ли на какой хостинг попадешь)

    по-любому есть проблема: побить строку на буквы формата ([D|d][0-9a-f]){4} и потом сопоставить с $letters
    но как грамотно побить строку я не втыкаю :( поэтому и прошу помощи людей опытом одаренных более меня…
  • adw0rd

    Сообщения: 22905 Репутация: N Группа: в ухо

    Spritz 9 августа 2010 г. 4:51, спустя 20 минут 28 секунд

    1. Покажите http-заголовки, ответа сервера, вместе с содержимым этим
    2. Я больше чем уверен, что дело в yii
    adw/0
  • Troy

    Сообщения: 2532 Репутация: N Группа: Джедаи

    Spritz 9 августа 2010 г. 4:53, спустя 2 минуты 45 секунд

    Вчера почти дописал проект на Yii, с русским все отлично.
  • Абырвалг

    Сообщения: 6476 Репутация: N Группа: Джедаи

    Spritz 9 августа 2010 г. 5:09, спустя 15 минут 49 секунд

    mvp, поставь для Firefox'а плагин HttpFox
    Спустя 31 сек.
    или в файрбаге перейди на вкладку "сеть"
    Спустя 105 сек.
    пример в аттаче
  • mvp

    Сообщения: 29 Репутация: N Группа: Кто попало

    Spritz 9 августа 2010 г. 5:29, спустя 19 минут 52 секунды

    всем спасибо!

    решение нашел, разобрав регуляркой по указанному выше шаблону :)
  • Givi

    Сообщения: 2284 Репутация: N Группа: Адекваты

    Spritz 9 августа 2010 г. 6:36, спустя 1 час 7 минут 5 секунд

    mvp, глупо исправлять результат проблемы, если можно устранить саму проблему. Лучше все же искать где проблема возникает.
  • pasha

    Сообщения: 1048 Репутация: N Группа: Адекваты

    Spritz 9 августа 2010 г. 9:33, спустя 2 часа 56 минут 56 секунд


    всем спасибо!

    решение нашел, разобрав регуляркой по указанному выше шаблону :)

    чем стричь ногти на ногах лучше ботинки на размер больше купить, хуле)

Пожалуйста, авторизуйтесь, чтобы написать комментарий!