Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: проблемы с кодировкой
 
 автор: admiral   (04.02.2010 в 17:24)   письмо автору
 
 


<?php

    $db 
= new mysqli('localhost''site' ,'site','site');

    if(
$db)
    {
        if(isset(
$_POST['queryString']))
        {
            
$queryString $db->real_escape_string($_POST['queryString']);
          
$queryString iconv('utf-8''cp1251'$queryString);
            if(
strlen($queryString) >0)
            {
                
$query =
                
$db->query("SELECT GROUP_CONCAT(surname,' ', name,' ', patronymic) AS fio  FROM `spid_patients` WHERE surname LIKE '$queryString%'
                GROUP BY surname, patient_id LIMIT 10"
);
                if(
$query)
                 {
                    while (
$result $query ->fetch_object())
                    {
                         echo 
'<li onClick="fill_fio(\''.$result->fio.'\');">'.$result->fio.'</li>';
                     }
                }
            }

        }
    }
?>

Яваскрипт отправляет обработчику данные в utf-8, а в БД cp1251. Раньше на денвере все работало отлично. А щас поставил связку и проблемы с кодировкой. скрипт выводит из базы вопросике. В базе данных кодировка cp1251.
В чем может быть проблема. и еще в pma ругается на то, что версия клиентской библиотки отличается от версии сервера. Из-за этого может быть?

  Ответить  
 
 автор: ddhvvn   (04.02.2010 в 17:28)   письмо автору
 
   для: admiral   (04.02.2010 в 17:24)
 

Поставьте дефолтную кодировку в .htaccess

  Ответить  
 
 автор: admiral   (04.02.2010 в 17:31)   письмо автору
 
   для: ddhvvn   (04.02.2010 в 17:28)
 

а как? в смысле что прописать-то?

  Ответить  
 
 автор: ddhvvn   (04.02.2010 в 18:18)   письмо автору
 
   для: admiral   (04.02.2010 в 17:31)
 

AddDefaultCharset windows-1251

  Ответить  
 
 автор: admiral   (04.02.2010 в 19:00)   письмо автору
 
   для: ddhvvn   (04.02.2010 в 18:18)
 

не то. яваскрипт только с утф работает. проблему решил тем что с помощью iconv ипереводил строку пришедшую из БД в cp1251, а затем перекодировал ее в утф, а только потом отдавал яваобработчику

  Ответить  
 
 автор: .heed   (04.02.2010 в 21:23)
 
   для: admiral   (04.02.2010 в 19:00)
 

Обычно хватает просто отправлять после соединения запрос "SET NAMES 'utf8'", если данные отправляются и получаются в utf-8
, насчёт mysqli не знаю встроено-ли там указание серверу кодировки обмена с клиентами.
, и неизвестно в каком виде там в таблице всё оказалось.

  Ответить  
 
 автор: Trianon   (04.02.2010 в 21:46)   письмо автору
 
   для: .heed   (04.02.2010 в 21:23)
 

>Обычно хватает просто отправлять после соединения запрос "SET NAMES 'utf8'", если данные отправляются и получаются в utf-8
>, насчёт mysqli не знаю встроено-ли там указание серверу кодировки обмена с клиентами.

оно и в php_mysql встроенное есть - mysql_set_charset() , просто им никто не пользуется.
в php_mysqli всё то же самое mysqli_set_charset() // mysqli::set_charset()

  Ответить  
 
 автор: Loki   (05.02.2010 в 13:19)   письмо автору
 
   для: Trianon   (04.02.2010 в 21:46)
 

mysql_set_charset() появилась только в версии 5.2.3, потому и нет широкого распространения... Так как на одной "пятерке" будет работать, а на другой - нет.

  Ответить  
 
 автор: Trianon   (05.02.2010 в 13:53)   письмо автору
 
   для: Loki   (05.02.2010 в 13:19)
 

Это - да... удивляет.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования