Ayola.net
Новости: В связи с обилием спама, постинг на форуме временно закрыт.

Для связи с поддержкой используйте тикеты в панели управления.
 
*
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь. Январь 25, 2017, 05:17:18


Войти


Страниц: [1]
  Печать  
Автор Тема: Почему не исполняется команда set character_set_client='cp1251'?  (Прочитано 9782 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Антон Уваров
Новичёк
*

Карма: 0
Сообщений: 11


Просмотр профиля WWW
« : Январь 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
Вне категорий
Маэстро
*****

Карма: 267
Сообщений: 4901



Просмотр профиля WWW
« Ответ #1 : Январь 23, 2008, 20:54:04 »

Информация в моей БД записывается в кодировке cp1251
А на самом сайте как? Да и вообще скажите его, будем разговаривать предметно.

Цитировать
Что неправильно я делаю? Может в синтаксисе запроса ошибки?
Возможно, что вы данные уже в таком виде занесли в БД, возможно, что они дважды кодируются в cp1251...
Записан

Бесплатный хостинг с PHP и MySQL

Вопросы и ответы - http://faq.ayola.net
Правка .htaccess - http://htaccess.ayola.net
Техподдержка - http://www.ayola.net/panel/tickets.php
По вопросам хостинга личные сообщения не пишите. Для этого есть тикеты.
Антон Уваров
Новичёк
*

Карма: 0
Сообщений: 11


Просмотр профиля WWW
« Ответ #2 : Январь 23, 2008, 21:02:39 »

Сайт http://comp.am9.ru/
на самом сайте отображается все отлично.
И там можно забивать позиции вручную, в режиме администрирования, но не 2500 тысячи же! я хочу импортировать из файла excel, но кодировки не совпадают
Записан
support@ayola.net
Вне категорий
Маэстро
*****

Карма: 267
Сообщений: 4901



Просмотр профиля WWW
« Ответ #3 : Январь 23, 2008, 21:44:38 »

Вы импортировать этот эксель файл пробовали?
Он должен нормально импортироваться, потому что все данные у вас в 1251й кодировке внутри лежат.
Записан

Бесплатный хостинг с PHP и MySQL

Вопросы и ответы - http://faq.ayola.net
Правка .htaccess - http://htaccess.ayola.net
Техподдержка - http://www.ayola.net/panel/tickets.php
По вопросам хостинга личные сообщения не пишите. Для этого есть тикеты.
Антон Уваров
Новичёк
*

Карма: 0
Сообщений: 11


Просмотр профиля WWW
« Ответ #4 : Январь 23, 2008, 21:48:19 »

Импортировать пробовал, кодировка непонятная, наверное Utf

но меня беспокоит что элементы базы(текст) отображаются в неверной кодировке и команды которые я отдаю что б это исправить исполняются но не имеют действия
« Последнее редактирование: Январь 23, 2008, 21:52:46 от Антон Уваров » Записан
support@ayola.net
Вне категорий
Маэстро
*****

Карма: 267
Сообщений: 4901



Просмотр профиля WWW
« Ответ #5 : Январь 23, 2008, 22:00:22 »

У вас там хитрее... UTF8, который еще поверх закодирован cp1251.

Вот как раз попробуйте и не давать всех этих команд, пусть выводит чистый UTF
Записан

Бесплатный хостинг с PHP и MySQL

Вопросы и ответы - http://faq.ayola.net
Правка .htaccess - http://htaccess.ayola.net
Техподдержка - http://www.ayola.net/panel/tickets.php
По вопросам хостинга личные сообщения не пишите. Для этого есть тикеты.
Антон Уваров
Новичёк
*

Карма: 0
Сообщений: 11


Просмотр профиля WWW
« Ответ #6 : Январь 24, 2008, 02:39:31 »

Попробовал не давать команд ничего не меняется, как было так и есть

А почему в Базе данных сравнение стоит utf8_general, как это изменить на cp1251? (скриншот)
Записан
support@ayola.net
Вне категорий
Маэстро
*****

Карма: 267
Сообщений: 4901



Просмотр профиля WWW
« Ответ #7 : Январь 24, 2008, 19:01:38 »

Так phpMyAdmin'ом и изменяете. Там есть listbox со всеми сравнениями...
Записан

Бесплатный хостинг с PHP и MySQL

Вопросы и ответы - http://faq.ayola.net
Правка .htaccess - http://htaccess.ayola.net
Техподдержка - http://www.ayola.net/panel/tickets.php
По вопросам хостинга личные сообщения не пишите. Для этого есть тикеты.
Антон Уваров
Новичёк
*

Карма: 0
Сообщений: 11


Просмотр профиля WWW
« Ответ #8 : Январь 26, 2008, 16:32:57 »

Нет, это не помогает, в базе так и остаются нечитабельные символы. Команды отданные базе не влияют на отображение символов. Попробую в инсталляционный скрипт внести  mysql_query("SET NAMES cp1251")
Записан
Argentum@ayola.ru
Модератор
Просветлённый
*****

Карма: 66
Сообщений: 581


Truth is out there...


Просмотр профиля
« Ответ #9 : Январь 26, 2008, 16:36:50 »

Тут по соседству один вариант опробывали, вот ссылка. Может вам подойдет...
http://www.ayola.net/forum/index.php/topic,2192.msg18241.html#msg18241
Записан

Будем взаимовежливы.
Все вопросы пишите в тикеты
Антон Уваров
Новичёк
*

Карма: 0
Сообщений: 11


Просмотр профиля WWW
« Ответ #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


Просмотр профиля WWW
« Ответ #11 : Январь 28, 2008, 02:27:50 »

Все, проблема действительно решилась введением строчки
mysql_query("SET NAMES cp1251") or die("Invalid query: " .mysql_error());
в указанный скрипт
Записан
Страниц: [1]
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.13 | SMF © 2006, Simple Machines LLC

2003-2008 © ООО "Инфотур" - Бесплатный хостинг Ayola.net
Valid XHTML 1.0! Valid CSS! Dilber MC Theme by HarzeM
Страница сгенерирована за 0.07 секунд. Запросов: 17.