|
|
|
| Здравствуйте! У меня проблема с кодировкой.База и весь сайт в кодировке: ср1251, но когда добавляю информацию в базу с помощью запроса, то в базу добавляются (Сентября ????). Можно ли написать запрос в кодировке 1251? | |
|
|
|
|
|
|
|
для: uvajs
(08.09.2011 в 11:55)
| |
mysql_query("SET NAMES cp1251")
|
перед запросом поставьте | |
|
|
|
|
|
|
|
для: lightning.say
(08.09.2011 в 12:51)
| | >
mysql_query("SET NAMES cp1251")
|
>перед запросом поставьте
Не выходит. все равно ????
Подключение к базе:
<?
$db = mysql_connect("localhost","root","") or die ("Не удалось подключиться к базе. Проверьте логин / пароль.");
$base = mysql_select_db("kav",$db) or die ("Не удалось подключиться к базе.");
mysql_query("SET NAMES 'cp1251';");
mysql_query("SET CHARACTER SET 'cp1251';");
mysql_query("SET SESSION collation_connection = 'cp1251_general_ci';");
mysql_query("SET lc_time_names = 'ru_RU'"); ?>
|
| |
|
|
|
|
|
|
|
для: uvajs
(08.09.2011 в 14:20)
| |
SHOW CREATE DATABASE имя_бд;
SHOW CREATE TABLE имя_табл;
|
что выдают? | |
|
|
|
|
|
|
|
для: lightning.say
(08.09.2011 в 15:19)
| | >
SHOW CREATE DATABASE имя_бд;
>
>SHOW CREATE TABLE имя_табл;
|
>
>что выдают?
mysql> SHOW CREATE DATABASE kav;
+----------+----------------------------------------------------------------+
| Database | Create Database |
+----------+----------------------------------------------------------------+
| kav | CREATE DATABASE `kav` /*!40100 DEFAULT CHARACTER SET cp1251 */ |
+----------+----------------------------------------------------------------+
1 row in set (0.01 sec)
|
Второй запрос не проходит.
Т.е. пишет, что база не выбрана. Хотя я знаю, что она тоже в кодировке 1251.
--
-- Table structure for table `comments`
--
CREATE TABLE IF NOT EXISTS `comments` (
`id` int(5) NOT NULL AUTO_INCREMENT,
`parent_id` int(5) NOT NULL DEFAULT '0',
`post` int(10) NOT NULL,
`name` varchar(50) NOT NULL,
`comment` text NOT NULL,
`date_add` datetime NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=27 ;
|
| |
|
|
|
|
|
|
|
для: uvajs
(08.09.2011 в 16:36)
| | Не уже ли больше никто... ((((( | |
|
|
|
|
|
|
|
для: uvajs
(09.09.2011 в 01:24)
| | попробуйте вначале файла добавить если нет:
<?php
header('Content-type: text/html; charset="windows-1251"');
?>
|
| |
|
|
|
|
|
|
|
для: uvajs
(08.09.2011 в 11:55)
| | а можно более подробно о проблеме... откуда берете данные, как добавляете, как проверяете запись в БД и т.д. | |
|
|
|
|
|
|
|
для: Lotanaen
(09.09.2011 в 09:54)
| | >а можно более подробно о проблеме... откуда берете данные, как добавляете, как проверяете запись в БД и т.д.
.htaccess : AddDefaultCharset windows-1251
В начале файла добавил:
header('Content-Type: text/html; charset=windows-1251');
Между тегами <head> прописан так:
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
Подключение к базе так:
<? $db = mysql_connect("localhost","root","") or die ("Не удалось подключиться к базе. Проверьте логин / пароль.");
$base = mysql_select_db("kav",$db) or die ("Не удалось подключиться к базе.");
mysql_query("SET NAMES 'cp1251';");
mysql_query("SET CHARACTER SET 'cp1251';");
mysql_query("SET SESSION collation_connection = 'cp1251_general_ci';");
mysql_query("SET lc_time_names = 'ru_RU'");
?>
|
База в кодировке ср1251:
mysql> SHOW CREATE DATABASE kav;
+----------+----------------------------------------------------------------+
| Database | Create Database |
+----------+----------------------------------------------------------------+
| kav | CREATE DATABASE `kav` /*!40100 DEFAULT CHARACTER SET cp1251 */ |
+----------+----------------------------------------------------------------+
1 row in set (0.01 sec)
|
Таблица comments:
ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=27 ;
В ней поля: comment и author тоже: cp1251_general_ci
Думаю это связано скриптом добавления...
Код добавления:
<?php
if($_SERVER['HTTP_X_REQUESTED_WITH'] == 'XMLHttpRequest') {
sleep(1);
if($_POST[parent_id]) $parent_id = preg_replace('/\D+/i','', $_POST[parent_id]);
else $parent_id = 0;
$author = trim($_POST[author]);
$comment = trim($_POST[comment]);
if(!$author) $error[author] = 'Введите имя!';
if(!$comment) $error[comment] = 'Напишите комментарий!';
if($error)
exit(json_encode($error));
require_once 'db.php';
$sql = "INSERT INTO comments (parent_id, name, comment, date_add) VALUES ($parent_id, '$author', '$comment', NOW())";
$result = mysql_query($sql);
if(!$result)
{
$error[] = 'Произошла ошибка, комментарий не сохранен';
exit(json_encode($error));
}
exit();
}
?>
|
А когда я добавляю комменты в ручную через phpMyAdmin, то на страничке они выводятся нормально. | |
|
|
|
|
|
|
|
для: uvajs
(09.09.2011 в 13:38)
| | похоже что у вас данные приходят в кодировке UTF-8 - попробуйте перед записью их перекодировать из UTF-8 в cp1251 | |
|
|
|
|
|
|
|
для: uvajs
(09.09.2011 в 13:38)
| | попробуйте выполнить код
$result = mysql_query('SHOW VARIABLES LIKE \'%CHAR%\'');
while( $row = mysql_fetch_array($result) )
echo $row[0].' : '.$row[1] . '<br>';
|
что выдает? | |
|
|
|
|
|
|
|
для: lightning.say
(09.09.2011 в 15:50)
| |
character_set_client : cp1251
character_set_connection : cp1251
character_set_database : cp1251
character_set_filesystem : binary
character_set_results : cp1251
character_set_server : cp1251
character_set_system : utf8
character_sets_dir : \usr\local\mysql-5.1\share\charsets\
|
| |
|
|
|
|
|
|
|
для: uvajs
(08.09.2011 в 11:55)
| | У меня тоже возникла проблема с этой же кодировкой в MySql. Помогите, кто чем может, сегодня целый день промучался, и как об стенку горохом ((
Дело вот в чем: в базе данных задаю кодировку виндоуз-1251, такая же кодировка установлена в файлах файл.рНр в хтмл-части (charset=windows-1251), пишу напрямую в БД тексты кирилицей и когда загружается файл (в броузере), тексты, прописанные в хтмл(е) отображаются нормально, а те, что вытаскиваются из БД выглядят каракулями. Подскажите лекарство, плиз, очень нужно!
База настроена на ср1251_general_ci, тексты в Базе по-русски выглядят читабельно, в каждой таблице такие же настройки кодировки. Если в броузере принуудительно установить отображение в кодировке КОI8-r, то нормальными становятся символы из БД, а каракулями весь остальной ХТМЛем прописанный текст. При этом пробовал в файлах менять настройки ХТМЛя на КОI8-r - пофиг. (( | |
|
|
|
|
|
|
|
для: Nahimov
(21.09.2011 в 01:41)
| | А соединение с MySQL как устанавливаете? У вас есть вызов запроса SET NAMES cp1251?
PS Под новые вопросы, лучше заводить новые темы. | |
|
|
|
|
|
|
|
для: cheops
(21.09.2011 в 11:32)
| | Да, большое спасибо. Дело было в этой строчке. Мне хостер тоже объяснил: у них вся информация из БД при изъятии перекодируется в КОИ8-У, если такую строчку не вводить...
Ну Ура! заработало! ))) | |
|
|
|
|
|
|
|
для: cheops
(21.09.2011 в 11:32)
| | Да, большое спасибо. Дело было в этой строчке. Мне хостер тоже объяснил: у них вся информация из БД при изъятии перекодируется в КОИ8-У, если такую строчку не вводить...
Ну Ура! заработало! ))) | |
|
|
|