PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи

Страниц (1): [1]

> Найдено сообщений: 6
Shatun Отправлено: 05 Мая, 2007 - 00:19:35 • Тема: Проблема с кодировкой PHP + MySQL • Форум: SQL и Архитектура БД

Ответов: 9
Просмотров: 166
Не получается Огорчение

Сам скрипт работает прекрасно..
Т.е. если создаю файл win.php в который полностью копирую библиотеку -
a.charset (скаченную Здесь )
а в самом конце пишу в различных кодировках
PHP:
скопировать код в буфер обмена
  1.  echo charset_x_win("свадьба")."- utf-8 <br />";
  2. echo charset_x_win("РТЙЧЕФ")." - koi-8r <br />";
  3. echo charset_x_win("ЯаШТХвФ")." - ISO не поддерживается :( <br />";

всё вроде работает:

свадьба- utf-8
привет - koi-8r
ЯаШТХвФ - ISO не поддерживается Недовольство, огорчение


Но как подцепить эту библиотеку к себе никак понять не могу Недовольство, огорчение
========

Всем огромнейшее спасибо!!


Может кому пригодиться

PHP:
скопировать код в буфер обмена
  1.  
  2. // вначале файла
  3. require("a.charset.php");
  4. // перед MySQL запросом переменная проверяется
  5. $query = charset_x_win($query);



Вы мне очень помогли!!
Shatun Отправлено: 30 Апреля, 2007 - 11:04:29 • Тема: Проблема с кодировкой PHP + MySQL • Форум: SQL и Архитектура БД

Ответов: 9
Просмотров: 166
Уххх... ЁПРСТ!
evgenijj спасибо огромнейшее!
Как раньше не нашёл эту инф.
Пробую. Если получится отишись в этом посте.
Shatun Отправлено: 30 Апреля, 2007 - 08:57:45 • Тема: Проблема с кодировкой PHP + MySQL • Форум: SQL и Архитектура БД

Ответов: 9
Просмотров: 166
Ничего не выходит.

Может неправильно проверяю на локалке…

Что делаю:
Открываю страницу с поиском и принудительно указываю другую кодировку. Например - KOI8-R
(вид > кодировка >кирилица KOI8-R )
затем в поле поиска ($query) пишу привет жму найти, ничего не происходит.
Пишет - Искали: РТЙЧЕФ
Т.е. получается, что не перекодирует перед тем как искать привет в БД
нашёл готовый скрипт - перекодирование в нужную кодировку

PHP:
скопировать код в буфер обмена
  1. <?
  2. ########################################################
  3. // определение кодировки текста и перекодирование в нужную
  4. ########################################################
  5.  
  6. function convert_cyr_text($text,$convert_to=""){                                 // detect codepage of $text and return converted to $convert_to
  7. // Swed  http://collection.com.ua/webmaster
  8.   if(!$code_page)$convert_to = "w";                                              // by default convert to windows-1251
  9.   $countChars = count_chars($text);                                              // cont chars of text
  10.   $sums = array(                                                                 // set sums for each codepage
  11.    "w" => array("small" => array_sum(array_slice($countChars,224,32)),           // windows-1251 small chars
  12.                 "cap"   => array_sum(array_slice($countChars,192,32))),          // capitalize chars
  13.    "k" => array("small" => array_sum(array_slice($countChars,192,32)),           // koi8-r
  14.                 "cap"   => array_sum(array_slice($countChars,224,32))),
  15.    "i" => array("small" => array_sum(array_slice($countChars,208,32)),           // iso8859-5
  16.                 "cap"   => array_sum(array_slice($countChars,176,32))),
  17.    "a" => array("small" => array_sum(array_slice($countChars,160,16))+           // cp866
  18.                              array_sum(array_slice($countChars,224,16)),
  19.                 "cap"   => array_sum(array_slice($countChars,128,32))),
  20.    "m" => array("small" => array_sum(array_slice($countChars,223,32)),           // x-mac-cyrillic
  21.                 "cap"   => array_sum(array_slice($countChars,128,32))),
  22.   );
  23.   $max = max($sums);                                                             // get max values
  24.   foreach ($sums as $name => $codepage)
  25.    if ($codepage == $max) $convert_from = $name;                                 // get name current codepage
  26.   if ($convert_from == $convert_to) return $text;                                // retrun not converted
  27.   return convert_cyr_string($text,$convert_from,$convert_to);                    // return converted
  28. }
  29. ?>


может им можно воспользоваться заменив в нём $text на $query?
Попробовал, ничего не получилось Недовольство, огорчение Может нужно ещё что добавить? Или не правильно тестю работу скрипта?
Подскажите люди добрые как кодировку ненужную побороть..
Shatun Отправлено: 29 Апреля, 2007 - 22:06:01 • Тема: Проблема с кодировкой PHP + MySQL • Форум: SQL и Архитектура БД

Ответов: 9
Просмотров: 166
valenok спасибо!

С
PHP:
скопировать код в буфер обмена
  1. <? header('Content-Type: text/html; charset=cp1251'); ?>

всё понятно

Но куда только не прикручивал
PHP:
скопировать код в буфер обмена
  1. <?       mysql_query ("SET NAMES `cp1251`");    
  2.       mysql_query ("set character_set_client='cp1251'");    
  3.       mysql_query ("set character_set_results='cp1251'");    
  4.       mysql_query ("set collation_connection='cp1251_general_ci'");     ?>

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

подскажите пожалуйста на примере.
Например есть запрос

PHP:
скопировать код в буфер обмена
  1. <?       $result = mysql_query("SELECT searh_query FROM ".$prefix."_imagegallery_search WHERE searh_query = '".$query."' "); ?>

как к нему правильно прикрутить вышеуказанный код?
Shatun Отправлено: 29 Апреля, 2007 - 14:43:24 • Тема: Проблема с кодировкой PHP + MySQL • Форум: SQL и Архитектура БД

Ответов: 9
Просмотров: 166
-SCHATTEN-, благодарю за то, что желаешь помочь!

Так понимаю перед тем как запускается поиск в БД
$query должна быть в кодировке WIN 1251
может использовать
$query = convert_cyr_string ($query,w,k)
но у меня ничего не получается

код скрипта здесь – http://www[dot]animac[dot]ru/search[dot]txt
удалил некоторые функции (которые не имеют отношения к поиску) и для восприятия (моего кривого кода) прокомментировал действия
Shatun Отправлено: 29 Апреля, 2007 - 10:37:21 • Тема: Проблема с кодировкой PHP + MySQL • Форум: SQL и Архитектура БД

Ответов: 9
Просмотров: 166
Уже давно сделал поиск смайлов на сайте по ключевым словам, но вот в процессе использования этого скрипта многие не находят то, что ищут.
Например –в WIN1251 выглядит вот так - репа
А вот в кодировке Юникод (UTF8-8) означает Репа
Видимо у человека который осуществляет поиск по умолчанию установлена кодировка (UTF8-8) отсюда и возникает проблема т.е. такого слова в базе нет и скрипт сообщает, что мол нет такого.
Причём заметил что ищут с различными кодировками.


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

Не сочтите за рекламу вот как это выглядит http://www[dot]animac[dot]ru/modules.php[dot][dot][dot]ile=searh_smiles

Страниц (1): [1]
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB