За последние 24 часа нас посетили 17323 программиста и 1648 роботов. Сейчас ищут 953 программиста ...

IE не хочет работать с руСским текстом через поиск...

Тема в разделе "PHP для новичков", создана пользователем fifofafofi, 19 сен 2010.

  1. fifofafofi

    fifofafofi Активный пользователь

    С нами с:
    13 сен 2010
    Сообщения:
    23
    Симпатии:
    0
    Ввожу ингл. буквы - Гуд, русские - не хочет... Может кто знает в чем тут проблема?... Во всех остальных браузерах все гуд, токо IE бормочит...

    http://s57.radikal.ru/i156/1009/5a/7302b50446ac.jpg
    http://s002.radikal.ru/i199/1009/b3/e890db3b4922.jpg

    вот 54,55,56 строчки... Что не так?

    PHP:
    1.  
    2. <?php
    3. $getName = mysql_query('SELECT * FROM `view` WHERE '.$nice.' ORDER by name ASC LIMIT 50');
    4. while ($row = mysql_fetch_array($getName)) {
    5.     $adress = $row['adress'];
    6. ?>
    это - то что хранится в $nice :

    PHP:
    1. <?php
    2. $nice = 'name LIKE "%'.addslashes($expl[0]).'%" AND name LIKE "%'.addslashes($expl[1]).'%" GROUP by id';
    3. ?>
    Добавлю, что пробывал на хостинге, где с кодировкой все отлично, тоесть не в ней дело...
    Все в utf-8... база _general_ci
     
  2. Superk

    Superk Активный пользователь

    С нами с:
    5 фев 2010
    Сообщения:
    32
    Симпатии:
    0
    очевидно, беда с кодировками
    браузеры по разному определяют кодировку сайта, кому-то достаточно, чтобы в тэгах была указана кодировка, а кто-то тэг игнорит и нужно в header верную кодировку
    попробуй сделать на странице
    header('Content-Type: text/html; charset=КОДИРОВКА_БАЗЫ_ДАННЫХ');
     
  3. Alex_@

    Alex_@ Активный пользователь

    С нами с:
    1 окт 2009
    Сообщения:
    76
    Симпатии:
    0
    у тебя страница с какой кодировкой????
    и подключение к БД с какой кодировкой????

    кстате такая фигня толко в EI встречается))))
     
  4. fifofafofi

    fifofafofi Активный пользователь

    С нами с:
    13 сен 2010
    Сообщения:
    23
    Симпатии:
    0
  5. fifofafofi

    fifofafofi Активный пользователь

    С нами с:
    13 сен 2010
    Сообщения:
    23
    Симпатии:
    0
    Помогите кто-то решить неполадку...
     
  6. Gromo

    Gromo Активный пользователь

    С нами с:
    24 май 2010
    Сообщения:
    2.786
    Симпатии:
    2
    Адрес:
    Ташкент
    сразу подключения к базе мускула:
    mysql_query("SET NAMES 'utf8'");

    на странице в хидере:
    <meta content="text/html; charset=utf-8" http-equiv="Content-Type">

    убедись, что данные были импортированы в базу в кодировке utf-8 !!!

    сделай статичный запрос с русским текстом.
    т.е. жёстко зашей русские слова в запрос, а не подставляй динамически из запроса пользователя.
    и посмотри, будет ли результат - сразу увидишь проблему, если она есть.
     
  7. fifofafofi

    fifofafofi Активный пользователь

    С нами с:
    13 сен 2010
    Сообщения:
    23
    Симпатии:
    0
    Вообщем IE передает данные в хз какой колировке... все состоит из utf-8 исключительно все... тоесть IE передал, стразу принимаю и вывожу, русский текст передает вот так - ��� (короч у меня на сайте выглядит не так, а квадратики) Что можно зделать, как перекодировать строку??? utf8_encode utf8_decode не помогли...
    функцией определения кодировки mb_detect_encoding($str); показует utf-8 но на самом то деле windows-1251... ппц...
    пробую перекодировать c помощью iconv и. т.д. Както крыво работает... Некоторые буквы не переводит, к примеру а,ц не понимает.... и если перекодировать, то другие браузеры не будут видеть...Подскажите, что можно зделать...
     
  8. Gromo

    Gromo Активный пользователь

    С нами с:
    24 май 2010
    Сообщения:
    2.786
    Симпатии:
    2
    Адрес:
    Ташкент
    form.html

    HTML:
    1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
    2. <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
    3. <title>TEST FORM USING UTF-8</title>
    4. </head>
    5. <form action="form.php" method="post">
    6.   <input type="text" name="test">
    7.   <input type="submit" value="send">
    8. </form>
    9. </body>
    10. </html>
    form.php
    PHP:
    1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
    2. <html>
    3. <head>
    4. <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
    5. <title>TEST FORM RESULT USING UTF-8</title>
    6. </head>
    7. <body>
    8. <pre>
    9. <?php print_r($_POST); ?>
    10. </pre>
    11. </body>
    12. </html>
    проверь, чтобы определение кодировки в браузере стояло автоматически.
     
  9. fifofafofi

    fifofafofi Активный пользователь

    С нами с:
    13 сен 2010
    Сообщения:
    23
    Симпатии:
    0
    все отлично... во всех браузерах передает utf-8... продолжил дальше... добавил .js файл, теперь все браузеры передает в utf-8, а IE в другой кодировке... Как поправить?

    php файл не трогал...

    html:
    HTML:
    1.  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
    2.  <html>
    3.  <head>
    4.  <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
    5.  <script type='text/javascript' src='search.js'></script>
    6.  <script type='text/javascript' src='prototype.js'></script>
    7.  <title>TEST FORM USING UTF-8</title>
    8.  </head>
    9.  <body>
    10.  <form action="form.php" method="get">
    11.    <input type="text" id="idSearch">
    12.  </form>
    13.  <div id='idResult'></div>
    14.  <script>search_init()</script>
    15.  </body>
    16.  </html>
    js:
    [js]function search_init()
    {
    r = $('idResult');
    new Form.Element.Observer(
    'idSearch',
    2, // 200 milliseconds
    function(el, value){
    r.innerHTML = "Идёт поиск.... пожалуйста подождите...";
    new Ajax.Request('form.php?name='+value,
    {
    method:'get',
    onSuccess: function(transport){
    r.innerHTML = transport.responseText || 'ошибка передачи данных';
    },
    onFailure: function(){r.innerHTML = 'ошибка передачи данных'; }
    });
    }
    )
    } [/js]
     
  10. Gromo

    Gromo Активный пользователь

    С нами с:
    24 май 2010
    Сообщения:
    2.786
    Симпатии:
    2
    Адрес:
    Ташкент
    русский текст как бэ это... ну того... в смысле всё... умер?

    может всё же стоит попробовать использовать специальную фукнцию?
    'form.php?name='+encodeURIComponent(value)
     
  11. fifofafofi

    fifofafofi Активный пользователь

    С нами с:
    13 сен 2010
    Сообщения:
    23
    Симпатии:
    0
    Жесть. Писал просто encodeURI - не работало, я уже просто не знал, что зделать... Нужно было .Component добавить...
    Огромное спасибо, за отзыв! Помогло работает!