|
|
|
|
<?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 ругается на то, что версия клиентской библиотки отличается от версии сервера. Из-за этого может быть? | |
|
|
|
|
|
|
|
для: admiral
(04.02.2010 в 17:24)
| | Поставьте дефолтную кодировку в .htaccess | |
|
|
|
|
|
|
|
для: ddhvvn
(04.02.2010 в 17:28)
| | а как? в смысле что прописать-то? | |
|
|
|
|
|
|
|
для: admiral
(04.02.2010 в 17:31)
| | AddDefaultCharset windows-1251 | |
|
|
|
|
|
|
|
для: 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 не знаю встроено-ли там указание серверу кодировки обмена с клиентами.
, и неизвестно в каком виде там в таблице всё оказалось. | |
|
|
|
|
|
|
|
для: .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() | |
|
|
|
|
|
|
|
для: Trianon
(04.02.2010 в 21:46)
| | mysql_set_charset() появилась только в версии 5.2.3, потому и нет широкого распространения... Так как на одной "пятерке" будет работать, а на другой - нет. | |
|
|
|
|
|
|
|
для: Loki
(05.02.2010 в 13:19)
| | Это - да... удивляет. | |
|
|
|