Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Операционные системы > Linux (Ubuntu, Debian, Red Hat, CentOS, Mint)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.09.2013, 22:08   #1
Кащей
Форумчанин
 
Аватар для Кащей
 
Регистрация: 09.07.2013
Сообщений: 249
Злость mysql кодировка кириллицы, вопрос не нов, но сложен

Перепробовал варианты внесения в базу данных записей из кирилических букв используя разные виды кодировки(set names 'utf-8' | 'koi8-r' | 'cp866' | 'cp1251'), всякий раз обновляя запись в таблице перед отбором, при котором всёравно вижу кракозябры типа '???? ??'. Как лечить?(терминал по умолчанию юзает UTF-8)
do not use your brain

Последний раз редактировалось Кащей; 25.09.2013 в 22:12.
Кащей вне форума Ответить с цитированием
Старый 25.09.2013, 23:37   #2
_PROGRAMM_
Участник клуба
 
Аватар для _PROGRAMM_
 
Регистрация: 30.07.2009
Сообщений: 1,603
По умолчанию

Возможно фишка в кодировке консоли? Вообще, если внести в базу Mysql текст каким-то скриптом, а потом ним же извлечь, то текст восстановится.

В мире нет вечных двигателей, зато есть вечные тормоза...

Блог
_PROGRAMM_ вне форума Ответить с цитированием
Старый 25.09.2013, 23:54   #3
Кащей
Форумчанин
 
Аватар для Кащей
 
Регистрация: 09.07.2013
Сообщений: 249
По умолчанию

Цитата:
Возможно фишка в кодировке консоли?
Эмм... хз. utf8 - utf8 рознь?
Со скриптом я не уверен что прокатит, так как юзаю C-API и ниразу не видел чтобы в Си устанавливалась кодировка или чтобы она была отлична от кодировки терминала. Я ето к тому, что вывод будет опять же в консоль и по тому всёравно будут кракозябры.
do not use your brain
Кащей вне форума Ответить с цитированием
Старый 26.09.2013, 07:11   #4
_PROGRAMM_
Участник клуба
 
Аватар для _PROGRAMM_
 
Регистрация: 30.07.2009
Сообщений: 1,603
По умолчанию

Как вы устанавливаете кодировку Mysql? После обеда проверю у себя, отпишусь.
Цитата:
о скриптом я не уверен что прокатит, так как юзаю C-API
Если ввод данных будет производиться в ваше приложение, то кракозябр не будет.

В мире нет вечных двигателей, зато есть вечные тормоза...

Блог
_PROGRAMM_ вне форума Ответить с цитированием
Старый 26.09.2013, 13:06   #5
Кащей
Форумчанин
 
Аватар для Кащей
 
Регистрация: 09.07.2013
Сообщений: 249
По умолчанию

SET NAMES 'utf8';
на пример.
do not use your brain
Кащей вне форума Ответить с цитированием
Старый 26.09.2013, 15:38   #6
_PROGRAMM_
Участник клуба
 
Аватар для _PROGRAMM_
 
Регистрация: 30.07.2009
Сообщений: 1,603
По умолчанию

Код:
SET NAMES 'utf8';
Ну utf8 много бывает.
Код:
SET NAMES utf8 COLLATE utf8_unicode_ci
Так работает?

Если нет, создайте в PhpMyAdmin базу с utf8>utf8_unicode_ci

В мире нет вечных двигателей, зато есть вечные тормоза...

Блог

Последний раз редактировалось _PROGRAMM_; 26.09.2013 в 15:42.
_PROGRAMM_ вне форума Ответить с цитированием
Старый 26.09.2013, 17:13   #7
Кащей
Форумчанин
 
Аватар для Кащей
 
Регистрация: 09.07.2013
Сообщений: 249
По умолчанию

Цитата:
Так работает?
нет.
А со скрипта всё хорошо. Значит не буду париться.
do not use your brain

Последний раз редактировалось Кащей; 26.09.2013 в 17:19.
Кащей вне форума Ответить с цитированием
Старый 26.09.2013, 18:32   #8
_PROGRAMM_
Участник клуба
 
Аватар для _PROGRAMM_
 
Регистрация: 30.07.2009
Сообщений: 1,603
По умолчанию

Ну все таки для общего развития. Правильно ли я понял. Вы заходили в консоль, там набирали
Код:
mysql -uuser -ppassword
далее выбрали базу
Код:
USE database
Выводили таблицу
Код:
SELECT * FROM table
И в выводе обнаружили кракозябры. Так?

В мире нет вечных двигателей, зато есть вечные тормоза...

Блог

Последний раз редактировалось _PROGRAMM_; 26.09.2013 в 18:34.
_PROGRAMM_ вне форума Ответить с цитированием
Старый 26.09.2013, 23:10   #9
Кащей
Форумчанин
 
Аватар для Кащей
 
Регистрация: 09.07.2013
Сообщений: 249
По умолчанию

Цитата:
Сообщение от _PROGRAMM_ Посмотреть сообщение
Так?
Точнее так:

Код:
mysql -uuser -ppassword
USE database;
SET NAMES 'кодировка';
UPDATE mytable SET name = 'Фьёдор' WHERE number = '1';
SELECT * FROM mytable WHERE number = '1';
Так я опробовал все кодировки которые нашёл на сайте мускуля. И вижу кракозябры вместо Фьёдора.
do not use your brain

Последний раз редактировалось Кащей; 26.09.2013 в 23:15.
Кащей вне форума Ответить с цитированием
Старый 28.09.2013, 18:16   #10
_PROGRAMM_
Участник клуба
 
Аватар для _PROGRAMM_
 
Регистрация: 30.07.2009
Сообщений: 1,603
По умолчанию

Я нашел только два выхода - изначально создать базу с нужной кодировкой или же пропарсить всю таблицу, меняя кодировки у VARCHAR'ов и TEXT'ов, например тем же C++'ом.

В мире нет вечных двигателей, зато есть вечные тормоза...

Блог
_PROGRAMM_ вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
кодировка Mysql Nebojitel SQL, базы данных 0 01.11.2011 20:12
MySQl - кодировка Kapitann PHP 1 24.10.2010 01:34
Кодировка MySql Musho Java Базы данных (JDBC, JPA, Hibernate) 1 05.10.2010 05:25
База данных MySQL и кодировка! nikolai_P SQL, базы данных 3 17.11.2009 22:50
Кодировка в MySQL и Delphi Droid БД в Delphi 2 18.06.2009 00:08