![]() |
Удавалось кому нибудь подружить Custom Search Engine от гугла с сайтом?
Пытаюсь подпружить Custom Search Engine от гугла с сайтом. Зарегился на гугле, настроил поисковик, получил 2 кода, один для вызова поискового запроса с кнопочкой сеарчь, а другой с выводом результата. Оба этих кода поставил на одной страничке. Если забивать в форму английское слово, то поиск срабатывает и выдает результаты, а вот если его по русски спросить, то ничего не выходит. Если разнести эти 2 кода на разные странички, то и с русским языком проблем не возникает, но охота сделать на одной. Еще нашел решение этой проблемы - выставить кодировку на странице в utf-8, но опять-же хочется иметь страничку с windows-1251.
Есть идеи? поисковик от гугла http://www.google.com/coop/cse/ страничка, на которой у меня возникли проблемы: http://tools-of-death.ru/2.html |
А сам код?
попробуй переводить из одной кодировки в другую строку которую передал через search до выполнения скрипта iconv -- Преобразовывает символы строки в другую кодировку string iconv ( string in_charset, string out_charset, string str ) Производит преобразование кодировки символов строки str из начальной кодировки in_charset в конечную out_charset. Возвращает строку в новой кодировке, или FALSE в случае ошибки. Если добавить //TRANSLIT к параметру out_charset будет включена транслитеризация. Это означает, что вслучае, когда символа нет в конечной кодировке, он заменяется одним или несколькими аналогами. Если добавить //IGNORE, то символы, которых нет в конечной кодировке, будут опущены. Иначе, будет возвращена строка str, обрезанная до первого недопустимого символа PHP код:
|
Там все с помощью яваскрипта происходит.
Вот код вызова формы поиска: Код:
<!-- Google CSE Search Box Begins --> Код:
<!-- Google Search Result Snippet Begins --> Код:
(function(){var f=null,a=window,j="sitesearch",s=a.googleSearchResizeIframe||a.googleSearchPath&&a.googleSearchPath=="/cse"&&typeof a.googleSearchResizeIframe=="undefined",p,o,k;function t(c,b,l,m){var d={},g=c.split(l);for(var e=0;e<g.length;e++){var h=g[e],n=h.indexOf(b);if(n>0){var i=h.substring(0,n);if(m){i=i.toUpperCase()}else{i=i.toLowerCase()}var w=h.substring(n+1,h.length);d[i]=w}}return d}function x(){var c=document.location.search;if(c.length<1){return""}c=c.substring(1,c.length);var b= |
Нашел одну зацепку в явоскрипте. Теперь возник вопрос, как с помощью яваскрипта преобразовать русские символы переданные с помощью метода get и превращенные в %EF%F0%EE%E2%E5%F0%EA%E0 преобразовать в русские символы в кодировке win-1251?
|
%EF%F0%EE%E2%E5%F0%EA%E0 это и есть утф8.. я тебе написал функцию (пхп) которая переводит из одной кодирвки в другую.. на яве я такой не знаю %)
PHP код:
ЗЫ: а мешанину мог бы и разобрать....... тебе же лучше потом будет Код:
( function() |
Спасибо за приведение мешанины в нормальный вид. Сам я ее кусками только в нужных местах к нормальному виду привел. Вручную долго ее приводить, а из автоматики ничего под рукой нету ;)
В пхп делать не хочу, так как все на джаве сделано, вот и хочу гугловскую джаву переделать под свои нужды :) Класс перекодирования гляну, а на яве случаем ничего нету уже предусмотренного для перекодировки из одной таблицы в другую, ведь наверное не я один этим заморачиваюсь? |
Сегодня уперся в такую же проблему с кодировками. Ларчик открывается довольно просто -- для кодировки KOI8-R в код формы поиска нужно добавить следующий код:
Код:
<input type="hidden" name="ie" value="KOI8-R" /> |
А с кодировкой windows-1251 нужно вставить что-то типа:
Код:
<input type="hidden" name="ie" value="windows-1251" /> Я до этого просто скачал аваскрипт гугловский и его немного поковеркал, там где в форму обратно передавался запрос. |
Да, так должно работать. К сожаления, пока не наберу 3 постов, не могу дать ссылки на документацию.
|
Так напиши еще чего-нить интересного и будет 3 пост ;)
Сам додумался на прописывание строчки с кодировкой или подсказал кто? |
Хм, надо попробовать 8-)
Додумался не сам. Поиск рулит. Сначало нашлось вот это: http://googlecustomsearch.blogspot.c...-language.html, потом по ссылке вот это: http://www.google.com/coop/docs/cse/hosting.html Где, собственно все и описано. |
Да чегото с инглишем у меня туговато :( Мне б документик на раше :)
А так я прописал как ты советовал, только не кои 8, а вин-1251 и все вроде нормально работает. Правда когда была кодировка утф-8 в форму набранные слова подставлялись есче после нажатия на кнопку поиск... А случаем не пытался разобраться с выводом популярных запросов на странице? Чего-то их скрипт ничего не показывает :( |
> Правда когда была кодировка утф-8 в форму набранные слова подставлялись есче после нажатия на кнопку поиск...
да та же проблема. если русский вводишь то он пропадает. Если английский остается. Прийдется наверное php использовать. >А случаем не пытался разобраться с выводом популярных запросов на странице? в google/adsense в расширенном отчете показывает:) |
Время: 17:16. |
Время: 17:16.
© OSzone.net 2001-