Антон Уваров
Новичёк
Карма: 0
Сообщений: 11
|
 |
« : Январь 23, 2008, 20:43:09 » |
|
Информация в моей БД записывается в кодировке cp1251, при просмотре через phpMyAdmin отображается некорректно (см. скриншот). Как было сказано на форуме, я пытаюсь выполнить команды: set character_set_client='cp1251' set names 'cp1251' set character_set_results='cp1251' и эти команды успешно исполняются, однако посмотрев Серверные переменные и настройки, я вижу что они не изменяются после отдачи команд и кодировка как была так и остается нечитабельной. Что неправильно я делаю? Может в синтаксисе запроса ошибки?
|
|
« Последнее редактирование: Январь 23, 2008, 20:53:52 от Антон Уваров »
|
Записан
|
|
|
|
support@ayola.net
|
 |
« Ответ #1 : Январь 23, 2008, 20:54:04 » |
|
Информация в моей БД записывается в кодировке cp1251 А на самом сайте как? Да и вообще скажите его, будем разговаривать предметно. Что неправильно я делаю? Может в синтаксисе запроса ошибки? Возможно, что вы данные уже в таком виде занесли в БД, возможно, что они дважды кодируются в cp1251...
|
|
|
Записан
|
|
|
|
Антон Уваров
Новичёк
Карма: 0
Сообщений: 11
|
 |
« Ответ #2 : Январь 23, 2008, 21:02:39 » |
|
Сайт http://comp.am9.ru/на самом сайте отображается все отлично. И там можно забивать позиции вручную, в режиме администрирования, но не 2500 тысячи же! я хочу импортировать из файла excel, но кодировки не совпадают
|
|
|
Записан
|
|
|
|
support@ayola.net
|
 |
« Ответ #3 : Январь 23, 2008, 21:44:38 » |
|
Вы импортировать этот эксель файл пробовали? Он должен нормально импортироваться, потому что все данные у вас в 1251й кодировке внутри лежат.
|
|
|
Записан
|
|
|
|
Антон Уваров
Новичёк
Карма: 0
Сообщений: 11
|
 |
« Ответ #4 : Январь 23, 2008, 21:48:19 » |
|
Импортировать пробовал, кодировка непонятная, наверное Utf
но меня беспокоит что элементы базы(текст) отображаются в неверной кодировке и команды которые я отдаю что б это исправить исполняются но не имеют действия
|
|
« Последнее редактирование: Январь 23, 2008, 21:52:46 от Антон Уваров »
|
Записан
|
|
|
|
support@ayola.net
|
 |
« Ответ #5 : Январь 23, 2008, 22:00:22 » |
|
У вас там хитрее... UTF8, который еще поверх закодирован cp1251.
Вот как раз попробуйте и не давать всех этих команд, пусть выводит чистый UTF
|
|
|
Записан
|
|
|
|
Антон Уваров
Новичёк
Карма: 0
Сообщений: 11
|
 |
« Ответ #6 : Январь 24, 2008, 02:39:31 » |
|
Попробовал не давать команд ничего не меняется, как было так и есть
А почему в Базе данных сравнение стоит utf8_general, как это изменить на cp1251? (скриншот)
|
|
|
Записан
|
|
|
|
support@ayola.net
|
 |
« Ответ #7 : Январь 24, 2008, 19:01:38 » |
|
Так phpMyAdmin'ом и изменяете. Там есть listbox со всеми сравнениями...
|
|
|
Записан
|
|
|
|
Антон Уваров
Новичёк
Карма: 0
Сообщений: 11
|
 |
« Ответ #8 : Январь 26, 2008, 16:32:57 » |
|
Нет, это не помогает, в базе так и остаются нечитабельные символы. Команды отданные базе не влияют на отображение символов. Попробую в инсталляционный скрипт внести mysql_query("SET NAMES cp1251")
|
|
|
Записан
|
|
|
|
|
Антон Уваров
Новичёк
Карма: 0
Сообщений: 11
|
 |
« Ответ #10 : Январь 28, 2008, 00:49:03 » |
|
Прочитал. Вот любим мы, русские, через жопу гланды удалять. Нет, для меня это не вариант. Слишком много операций. Нашел на сайте поддержки:
Неверное отображение кириллицы вызвано несоответствием кодировки, установленной в настройках некоторых версий MySQL с кодировкой, в которой задаются данные, инициализируемые при установке скриптов.
Для разрешения данной проблемы необходимо произвести следующие действия перед установкой скриптов: В настройках MySQL my.cnf установить:
[mysql] default-character-set = cp1251 Сделать изменения в файле includes/database/mysql.php:
function db_connect($host,$user,$pass) //create connection { $r = mysql_connect($host,$user,$pass); if(preg_match('/^5./',mysql_get_server_info($r))) db_query('SET SESSION sql_mode=0'); mysql_query("SET NAMES cp1251") or die("Invalid query: " .mysql_error()); return $r; } Создать базу данных для использования, с помощью следующей команды:
CREATE DATABASE `[название базы]` DEFAULT CHARACTER SET cp1251 COLLATE cp1251_general_ci;
Если Вы устанавливаете скрипт на удаленный сервер, Вы можете обратиться в службу поддержки Вашего хостинг-провайдера для того, чтобы администратор сервера выполнил для Вас эти действия.
|
|
|
Записан
|
|
|
|
Антон Уваров
Новичёк
Карма: 0
Сообщений: 11
|
 |
« Ответ #11 : Январь 28, 2008, 02:27:50 » |
|
Все, проблема действительно решилась введением строчки mysql_query("SET NAMES cp1251") or die("Invalid query: " .mysql_error()); в указанный скрипт
|
|
|
Записан
|
|
|
|
|