+  HandyCache форум
|-+  Главная категория» Новые предложения» Поддержка кириллических доменов.
Имя пользователя:
Пароль:
Страниц: 1 2 [Все]   Вниз
  Отправить эту тему    Печать  
Автор Тема: Поддержка кириллических доменов.  (Прочитано 36489 раз)
0 Пользователей и 1 Гость смотрят эту тему.
divinets
Пользователь
**

Репутация: +1/-0
Offline Offline

Сообщений: 59


« : 19 сентября 2010, 13:29:19 »

Предлагаю добавить поддержку кириллических доменов в "нормальном" виде, а не так как это организовано сейчас.
Пример: сайт россия.рф отображается в HC как http://xn--h1alffa9f.xn--p1ai.
Пробовал в разных браузерах, результат схожий. В адресной строке барузеров кириллический адрес отображается нормально, а в HC в виде "http://xn--h1alffa9f.xn--p1ai/"
Обсудим?

! Реализовано с версии 1.0 RC3 (1.0.0.337) от 30.12.2010 г.!
« Последнее редактирование: 05 апреля 2011, 10:30:55 от DenZzz » Сообщить модератору   Записан
mai62
Автор HC
*****

Репутация: +226/-4
Offline Offline

Сообщений: 6383


« Ответ #1 : 19 сентября 2010, 15:24:29 »

Это браузеры преобразовывают россия.рф в http://xn--h1alffa9f.xn--p1ai и передают НС уже в таком виде.
Добавлено: 19 Сентября 2010, 15:22:38

По стандарту в URL могут быть только латинские символы.
Сообщить модератору   Записан
popkov
Beta tester
*****

Репутация: +3/-0
Offline Offline

Сообщений: 349


« Ответ #2 : 19 сентября 2010, 16:39:01 »

Наверное, можно написать расширение, которое будет преобразовывать "xn--h1alffa9f.xn--p1ai" обратно в "россия.рф" и именно в таком виде отображать в Мониторе, а также сохранять в соответствующую папку в кэше "россия.рф". Однако неясно, как с русскими символами будут работать фильтры.
Сообщить модератору   Записан
divinets
Пользователь
**

Репутация: +1/-0
Offline Offline

Сообщений: 59


« Ответ #3 : 19 сентября 2010, 17:59:17 »

Спасибо!
Все ясно, думаю пока браузеры не начнут массово корректно отображать кириллицу в запросах, ничего лучше и не менять в HC.
Сообщить модератору   Записан
DenZzz
Модератор
*****

Репутация: +179/-11
Offline Offline

Сообщений: 5589



« Ответ #4 : 19 сентября 2010, 18:06:19 »

Наверное, можно написать расширение, которое будет преобразовывать "xn--h1alffa9f.xn--p1ai" обратно в "россия.рф" и именно в таком виде отображать в Мониторе, а также сохранять в соответствующую папку в кэше "россия.рф".

Расширением такое нельзя сделать и вообще я за создание в HC такой штатной опции, т.к. она будет полезна всем пользователям.

mai62

По поводу реализации. Заголовок запроса hc.request_header перекодировать не надо. Перекодируем только переменную hc.url с помощью функции hc.recode(), ее выводим в мониторе, прогоняем по спискам и пишем в кэш.

Цитировать
Однако неясно, как с русскими символами будут работать фильтры.

Замечательно будут работать! Проверь в тренажере.

Все ясно, думаю пока браузеры не начнут массово корректно отображать кириллицу в запросах, ничего лучше и не менять в HC.

Вывод абсолютно неправильный! Браузеры уже корректно передают кириллицу в запросах с помощью PUNY-кода, как того требует спецификация, потому ничего в этом плане меняться в них не будет! Ждать дальше бессмысленно! Надо действовать.
Сообщить модератору   Записан
mai62
Автор HC
*****

Репутация: +226/-4
Offline Offline

Сообщений: 6383


« Ответ #5 : 19 сентября 2010, 18:56:33 »

Цитировать
Замечательно будут работать! Проверь в тренажере.
Будут работать только с языком, совпадающим с языком локализации системы.
Однако, вместе с кириллическими появятся китайские, корейские, японские, грузинские др. Со всеми ними правила работать не будут. Чтобы правила работали со всеми языками нужно использовать юникод, но это приведет к многократному уменьшению скорости работы регулярных выражений.
Сообщить модератору   Записан
popkov
Beta tester
*****

Репутация: +3/-0
Offline Offline

Сообщений: 349


« Ответ #6 : 19 сентября 2010, 19:55:48 »

Чтобы правила работали со всеми языками нужно использовать юникод, но это приведет к многократному уменьшению скорости работы регулярных выражений.
Пока не так много имеется сайтов в национальных доменах. Что, если использовать Юникод только по отношению к раскодированным URL?
Сообщить модератору   Записан
mai62
Автор HC
*****

Репутация: +226/-4
Offline Offline

Сообщений: 6383


« Ответ #7 : 19 сентября 2010, 20:12:48 »

Не получится. Чтобы библиотека, исполняющая регулярные выражения, поддерживала юникод ее нужно перекомпилировать с соответствующими ключами. После этого она будет тормозить со всеми регулярные выражениями.
Сообщить модератору   Записан
DenZzz
Модератор
*****

Репутация: +179/-11
Offline Offline

Сообщений: 5589



« Ответ #8 : 19 сентября 2010, 21:21:30 »

Будут работать только с языком, совпадающим с языком локализации системы.

Этого будет вполне достаточно для большинства пользователей HC! Домены на чужих языках интересны только носителям этих языков. Чтобы набрать такой домен в адресной строке браузера нужна соответствующая клавиатура и локализация системы. Следовательно, писать для себя правила на своих родных языках смогут почти все пользователи HC, а писать правила для чужих языков, думаю, вообще мало кому будет интересно...

Добавлено: 19 Сентября 2010, 20:41:08

Чтобы правила работали со всеми языками нужно использовать юникод, но это приведет к многократному уменьшению скорости работы регулярных выражений.

Уже обсуждали - овчинка выделки не стоит.

Добавлено: 19 Сентября 2010, 20:51:26

Кстати, хорошо бы уметь раскодировать не только домены, но всю ссылку. Например:
xn--d1acufc.xn--p1ai/%D1%80%D0%B5%D0%BA%D0%BB%D0%B0%D0%BC%D0%B0/

Тут применено сразу 2 алгоритма: Punycode для доменов, и коды UTF-8 для остальной кириллицы в URL.

Гораздо удобнее будет писать правила удобочитаемом виде: +домен.рф/реклама/ , чем кодами.
Сообщить модератору   Записан
mih
Пользователь
**

Репутация: +3/-0
Offline Offline

Сообщений: 97


« Ответ #9 : 05 апреля 2011, 00:00:36 »

Специально зашёл на форум — посмотреть, как дела с кириллицей у HC.
Мне кажется, обязательно надо делать поддержку (дешифровку для пользователя).
Скоро вся нечисть освоит эту нишу — как будем блокировать, если в мониторе ничего не понять?

Имейте в виду:
без поддержки кириллицы — 
первая часть названия у HC —
будет под большим вопросом.
« Последнее редактирование: 05 апреля 2011, 00:49:32 от mih » Сообщить модератору   Записан
DenZzz
Модератор
*****

Репутация: +179/-11
Offline Offline

Сообщений: 5589



« Ответ #10 : 05 апреля 2011, 10:25:57 »

Мне кажется, обязательно надо делать поддержку (дешифровку для пользователя).

Это уже давно реализовано с версии 1.0.0.337!
Сообщить модератору   Записан
mih
Пользователь
**

Репутация: +3/-0
Offline Offline

Сообщений: 97


« Ответ #11 : 13 апреля 2011, 01:07:27 »

Обрадовался, поставил, включил.
Но ведь это работает только для UTF-8 хвоста!
А домен? Например, порнушка.рф?
« Последнее редактирование: 13 апреля 2011, 01:15:56 от mih » Сообщить модератору   Записан
DenZzz
Модератор
*****

Репутация: +179/-11
Offline Offline

Сообщений: 5589



« Ответ #12 : 13 апреля 2011, 09:58:12 »

Всё декодируется: и домены, и хвосты, в т.ч. и порнушка.рф! Как ты проверял, не знаю.

Только домены с дефисом в версии 1.0.0.337 не декодируется. Это уже исправлено в бета-версии, но она пока не выложена...
Сообщить модератору   Записан
mih
Пользователь
**

Репутация: +3/-0
Offline Offline

Сообщений: 97


« Ответ #13 : 13 апреля 2011, 15:43:14 »

Да уж, поторопился, — ввел первое пришедшее на ум (см. пример) — и не получил результата из-за дефиса в "много-доменов.рф", на который сразу попадаю. Такая реакция только на "порнушка.рф": если задать, например "порнушки.рф" — ничего такого не происходит; так что мне просто "повезло", а варианты проверить не догадался.

Не по теме, но всё же хочу спросить: почему, если ввести мой пример (а по нему происходит что-то вроде редиректа (?) на http://много-доменов.рф) — мы в мониторе (и в логе) не видим моего запроса, а видим СРАЗУ "много-доменов.рф" (http://xn----dtbbff2bdefebcd.xn--p1ai/), как-будто сам браузер уже посылает этот "много-доменов.рф"?

Ну и, — как следствие, — в этом случае черное правило "+порнушка.рф"  уже не действует.

Что за механизм тут работает? Спасибо; и извини, что не по теме.
« Последнее редактирование: 13 апреля 2011, 16:32:59 от mih » Сообщить модератору   Записан
mih
Пользователь
**

Репутация: +3/-0
Offline Offline

Сообщений: 97


« Ответ #14 : 13 апреля 2011, 17:59:59 »

Добавлено: я подозреваю, что это провайдер (Стрим) как-то вмешивается.
Но мой вопрос остаётся.

Но, вообще, кошмар: на главной странице пишут:
"Вы попали на этот сайт, так как набрали один из доменов нашего каталога", а если посмотреть в соответствующий каталог ... — нет, лучше не смотреть.

« Последнее редактирование: 13 апреля 2011, 18:51:43 от mih » Сообщить модератору   Записан
DenZzz
Модератор
*****

Репутация: +179/-11
Offline Offline

Сообщений: 5589



« Ответ #15 : 14 апреля 2011, 08:50:01 »

мы в мониторе (и в логе) не видим моего запроса, а видим СРАЗУ "много-доменов.рф"

У меня оба запроса видно в мониторе (cм. скрин-шот). В версии 1.0.0.337 аналогично, только второй домен не декодирован.

Добавлено: 14 Апреля 2011, 08:46:43

Что за механизм тут работает?

Обычная переадресация. На первый запрос сервер отвечает кодом 301 и сообщает новый URL. Браузер его и запрашивает.


* Декодирование.png (6.64 Кб, 890x41 - просмотрено 229 раз.)
Сообщить модератору   Записан
mih
Пользователь
**

Репутация: +3/-0
Offline Offline

Сообщений: 97


« Ответ #16 : 14 апреля 2011, 12:09:05 »

В том то и дело, что у меня — не так, поэтому и спрашиваю.
Очищаю монитор. Запрашиваю "порнушка.рф". Вижу в браузере "много-доменов.рф/". Смотрю монитор и лог.
Вижу первой же строке:http://xn----dtbbff2bdefebcd.xn--p1ai/, то есть — "много-доменов". Своего запроса не вижу. Доп. проверка: вношу "+порнушка.рф" в чёрный список. Он не срабатывает, все равно перехожу на "много-доменов.рф/". Не понимаю — спрашиваю у Вас.

upd: как-то странно в unicode лог загружается обратно, поэтому загрузил ещё в ansi


* 112.PNG (27.82 Кб, 721x463 - просмотрено 248 раз.)
* log.txt (24.62 Кб - загружено 104 раз.)
* log_ansi.txt (12.31 Кб - загружено 105 раз.)
« Последнее редактирование: 14 апреля 2011, 12:19:41 от mih » Сообщить модератору   Записан
DenZzz
Модератор
*****

Репутация: +179/-11
Offline Offline

Сообщений: 5589



« Ответ #17 : 14 апреля 2011, 15:24:15 »

Смотрю монитор и лог. Вижу первой же строке:http://xn----dtbbff2bdefebcd.xn--p1ai/, то есть — "много-доменов". Своего запроса не вижу.

Раз в мониторе и логе HC первого запроса у тебя нет, значит что-то его обработало до HC и к HC он вообще не приходил! Кто это мог сделать? Например, антивирус, файервол или какое-то расширение FireFox. Поставь сниффер и посмотри.

Цитировать
upd: как-то странно в unicode лог загружается обратно, поэтому загрузил ещё в ansi

Потому что нужно загружать логи в архивах! Это написано в ФАКе.
Сообщить модератору   Записан
mih
Пользователь
**

Репутация: +3/-0
Offline Offline

Сообщений: 97


« Ответ #18 : 14 апреля 2011, 18:29:29 »

Прости меня, что пристаю с этим вопросом — чудеса просто.
У меня нет ни одного расширения FireFox (поставил с офсайта для некоторых экспериментов, больше ничего не ставил), нет и никогда не было антивирусов (как и вирусов), и файервол — от SP2, стандартный.

Но факт: из FireFox — порнушки.рф НЕТ, и чёрн. список НЕ срабатывает, а из Оперы (9.64), оказывается, — ЕСТЬ, и список работает. Как так, не знаю. И ведь если первый запрос (в случае с FireFox) не доходит до HC (как ты предположил), то и "много-доменов.рф" я бы не увидел, так ведь? Не понимаю ни че го .
Сообщить модератору   Записан
mih
Пользователь
**

Репутация: +3/-0
Offline Offline

Сообщений: 97


« Ответ #19 : 15 апреля 2011, 16:47:00 »

mih от mih:
mih, ..., очисти кеш firefox!!!

Не мог предположить, что это поможет; но после очистки я увидел в мониторе "порнушка.рф" (она была уже в черном списке).
По-моему, такая работа firefox — ненормальна; он запоминает переадресацию "навсегда".
Далее: после выключения чёрн. списка однократно ситуация с переадресацией нормальная, а потом переадресацию опять делает браузер — без проверки в сети; поэтому опять вижу только "xn----dtbbff2bdefebcd.xn--p1ai".

 
Вот это действие (очистка кеша) я бы поместил первым пунктом в раздел "Для быстрого решения проблемы вам следует сделать следующее:".

« Последнее редактирование: 15 апреля 2011, 17:35:39 от mih » Сообщить модератору   Записан
gudkov
Пользователь
**

Репутация: +2/-0
Offline Offline

Сообщений: 88


« Ответ #20 : 27 мая 2011, 11:53:37 »

Есть проблема с кириллицескими доменами в последней версии HC, не переходит по ссылке:
http://кибердиплом.рф/downloads/

Т.е. запрос просто висит, висит...., если прервать и попробовать перейти заново, то количество загруженный байт может отличаться, т.е. может быть загружено 400, 500, 600 байт... и на этом все. Напрямю без НС переходит нормально.
Сообщить модератору   Записан
gudkov
Пользователь
**

Репутация: +2/-0
Offline Offline

Сообщений: 88


« Ответ #21 : 27 мая 2011, 19:02:01 »

Снимаю вопрос, виноват Юзер Гейт.
Сообщить модератору   Записан
sunserg10
Beta tester
*****

Репутация: +7/-0
Offline Offline

Сообщений: 322


« Ответ #22 : 27 мая 2011, 21:34:58 »

Снимаю вопрос, виноват Юзер Гейт.
Вы используете цепочку прокси
юзер - Юзер Гейт - HC ??
Сообщить модератору   Записан
gudkov
Пользователь
**

Репутация: +2/-0
Offline Offline

Сообщений: 88


« Ответ #23 : 28 мая 2011, 10:23:15 »

цепочка такая
юзер-НС-Юзер Гейт

Если выкинуть ЮГ из этой цепочки то все работает.
Сообщить модератору   Записан
mai62
Автор HC
*****

Репутация: +226/-4
Offline Offline

Сообщений: 6383


« Ответ #24 : 28 мая 2011, 11:44:36 »

Я проверял в цепочке юзер-НС-Squid. Нормально этот сайт открывается.
Сообщить модератору   Записан
DenZzz
Модератор
*****

Репутация: +179/-11
Offline Offline

Сообщений: 5589



« Ответ #25 : 28 мая 2011, 12:00:31 »

На цепочке Браузер-НС-Proxomitron тоже все нормально работает, т.е. с каскадом прокси проблем нет.
Сообщить модератору   Записан
gudkov
Пользователь
**

Репутация: +2/-0
Offline Offline

Сообщений: 88


« Ответ #26 : 28 мая 2011, 12:34:57 »

Да это 100% баг ЮГ, только выключил из цепочки HC, попробовав зайти напрямую через ЮГ, не заходит...
Сообщить модератору   Записан
Zoynels
Новичок
*

Репутация: +1/-0
Offline Offline

Сообщений: 42


« Ответ #27 : 08 февраля 2012, 12:23:04 »

 Возможно ли разделение опции "Вид->Декодировать URL на язык локали", на несколько отдельных? Т.е. отдельно опция: декодирование puny, отдельно декодирование utf8 и 1251? А то например мне нужно только декодирование puny, а вот остальное удобнее чтобы оставалось в виже URL (%D0%BF%D1%80%D0%B8%D0%B2%D0%B5%D1%82)...
 Просто после включения опции начал замечать что например в википедии, нечитаемые символы (что нет в кодировке 1251), которые передаются в URL в кодировке юникода, неправильно транслируются. Вместо символов юникода преобразовывается в "²éèçà" и т.п. Нет, конечно понятно что это символы не из локали моей виндовз, но всё таки это баг...
 Поэтому просьба, если нельзя разделить опцию на декодирование различных способов кодировки (следовательно каждый будет выбирать только что ему нужно), то хотя бы исправьте функцию чтобы символы не из локали оставались бы в прежнем виде "%C2%B2%C3%A9%C3%A8%C3%A7%C3%A0", а не декодировались бы неправильным образом...
 Пока же пришлось её отключить чтобы всё правильно записывалось!

 И ещё, нельзя ли ввести переменную типа: hc.monitor_string и hc.monitor_text_color, только чтобы можно было задавать отображаемый URL в мониторе? Ну и если возможно то и чтобы можно было менять цвет фона строки?
Сообщить модератору   Записан
gudkov
Пользователь
**

Репутация: +2/-0
Offline Offline

Сообщений: 88


« Ответ #28 : 09 февраля 2012, 16:11:16 »

Просто после включения опции начал замечать что например в википедии, нечитаемые символы (что нет в кодировке 1251), которые передаются в URL в кодировке юникода, неправильно транслируются. Вместо символов юникода преобразовывается в "²éèçà" и т.п.

Подтверждаю, есть такое....
Сообщить модератору   Записан
mai62
Автор HC
*****

Репутация: +226/-4
Offline Offline

Сообщений: 6383


« Ответ #29 : 09 февраля 2012, 16:18:09 »

Хорошо, разделю на две опции.
Сообщить модератору   Записан
Zoynels
Новичок
*

Репутация: +1/-0
Offline Offline

Сообщений: 42


« Ответ #30 : 10 февраля 2012, 14:52:01 »

и вот что ещё заметил баг:
 открываем через браузер например URL http://ru.wikipedia.org/wiki/Компьютерный_терроризм, всё загружается и кэшируется. далее переходим в HC и удаляем правой кнопкой из кэша, а затем опять же правой кнопкой "Загрузить в кэш" (можно и без удаления)... и видим что HC запрашивает вот такой  URL http://ru.wikipedia.org/wiki/xn--m0a8cmkgdijq7ggy_xn--e1aecrhlabn, кодировка pynucode, который не скачивается из интернета, так как сервер его не понимает. Поэтому кроме отображаемого в мониторе адреса, также должен существовать и запрашиваемый бразуером адрес. Впрочем насколько я знаю только домены кодируются в punycode, остальное кодируется в unicode или ansii/1251 или иной локальной кодировке c %.
Сообщить модератору   Записан
mai62
Автор HC
*****

Репутация: +226/-4
Offline Offline

Сообщений: 6383


« Ответ #31 : 11 февраля 2012, 21:21:50 »

Спасибо, исправлю в следующей версии.
Сообщить модератору   Записан
olDjeka
Постоялец
***

Репутация: +6/-0
Offline Offline

Сообщений: 117


« Ответ #32 : 09 января 2013, 21:32:57 »

"Декодировать URL на язык локали Windows" тоже неплохо бы разделить на две:
- Только UTF-8 и допустимые US-ASCII
- Всё или Остальное
Сообщить модератору   Записан
DenZzz
Модератор
*****

Репутация: +179/-11
Offline Offline

Сообщений: 5589



« Ответ #33 : 09 января 2013, 21:55:28 »

mai62

Название опции "Кодировать локальные домены в puny-код" не соответствует ее функционалу. При поставленной галке HC наоборот декодирует из puny-код, т.е. логичнее назвать опцию "Декодировать локальные домены из puny-код".
Сообщить модератору   Записан
mai62
Автор HC
*****

Репутация: +226/-4
Offline Offline

Сообщений: 6383


« Ответ #34 : 10 января 2013, 01:55:35 »

DenZzz
Ты прав, спасибо. Исправлю в следующей версии.
Сообщить модератору   Записан
DenZzz
Модератор
*****

Репутация: +179/-11
Offline Offline

Сообщений: 5589



« Ответ #35 : 07 февраля 2013, 14:57:18 »

mai62

При использования Opera Turbo в мониторе HC появляются URL вида:
http://opera10beta-turbo.opera-mini.net:80/xn--h1alffa9f.xn--p1ai/

Опция "Декодировать puny-код в URL" включена, но как видим, puny-код после префикса сервера Турбо не декодирован. В кэш файлы пишутся тоже по недекодированному пути. Можно доделать опцию?
« Последнее редактирование: 07 февраля 2013, 15:05:16 от DenZzz » Сообщить модератору   Записан
mai62
Автор HC
*****

Репутация: +226/-4
Offline Offline

Сообщений: 6383


« Ответ #36 : 09 февраля 2013, 02:55:50 »

Я считал, что puny-код применяется только в доменном имени, поэтому обрабатываю только его.
Попробую сделать обработку и твоей ситуации.
Сообщить модератору   Записан
nick7inc
Постоялец
***

Репутация: +3/-0
Offline Offline

Сообщений: 108


« Ответ #37 : 23 августа 2013, 12:45:52 »

Не получится. Чтобы библиотека, исполняющая регулярные выражения, поддерживала юникод ее нужно перекомпилировать с соответствующими ключами. После этого она будет тормозить со всеми регулярные выражениями.
Извиняюсь заранее, если скажу глупость, т.к. имею малый опыт программирования в C++. В C++ можно цеплять внешнюю DLL на этапе выполнения (не знаю, можно ли так делать в дельфи). Что это даёт. Если оставить HC со своими регулярными выражениями (Ru+EN), которые работают быстро, но сделать ещё галку в настройках, которая в случае обнаружения других языков подгружает UNICODE DLL, которая и будет обрабатывать (уже медленно) такие запросы.  Можно сделать детекцию языка и использовать соответствующий движок. Если кому не нужно обрабатывать такие запросы, то галку в настройках можно не ставить, DLL подгружаться не будет.
Сообщить модератору   Записан
Страниц: 1 2 [Все]   Вверх
  Отправить эту тему    Печать  

 
Перейти в: