![]() |
php md5 ???
Вложений: 1
Посмотрите пожалуйста код и сравните два ответа. В чем причина разницы md5. Понятно что где-то перекодируется win1251-koi8 но вот где ? Может это в доках где-то описано и никакой странности нет ?
|
если твой исходник имел кодировку KOI-8 то MD5() тебе вернет совсем другое значение, отличное от того что в архиве, а если WIN-1251 то все нормально.
|
Цитата:
Цитата:
Никакой странности не вижу. Естественно кирилица в разных кодировках имеет разные md5 суммы. |
Цитата:
получается - пришел запрос x=%XX%XX...... - echo($x) выводит одинаковые значения равное urldecode('%XX%XX......') - а md5 выводит разные значения ! (Запрос делался на perl через lwp и насколько я знаю perl ничего не перекодирует и следовательно ответ записан в точности по байтам как и пришел) |
Цитата:
1-1.txt: Content-Type: text/html; charset=windows-1251 1-2.txt: Content-Type: text/html; charset=koi8-r Тоесть данные уже присылаются на обработку в разных кодировках! |
Вы не правы (или я :-)
Content-Type:... это уже ответ. В файле записан сначала весь запрос потом \n\n\n потом весь ответ Ну вот код весь на perl Код:
use LWP::UserAgent; |
Может я конечно не прав, но Вы посмотрите, сервер Выдает два ответа в разных кодировках, а слово "привет" и там и там отображается нормально, отсюда я делаю Вывод что они и есть в разных кодировках.
Почему бы просто в самом скрипте не учесть эти кодировки и перекодировать если нужно? |
Разобрался на другом форуме. Это было из-за русского апача
привет -> apache(перекод(привет))=РТЙЧЕФ -> php -> скрипт ДАЛЬШЕ 1. echo(РТЙЧЕФ) -> apache(перекод_назад(РТЙЧЕФ)) -> привет 2. echo(md5(РТЙЧЕФ)) -> apache(не_перекод_т_к_англ) -> разница Спасибо всем. |
| Часовой пояс GMT +4, время: 22:33. |
Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.