SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 10.01.2011 17:04:16

gloommy
Участник
Зарегистрирован: 10.01.2011
Сообщений: 3

Добавление данных.

Добавляю данные в таблицу. Данные не добавляются, ошибка:
ERROR 1366: Incorrect string value: '\xD1\x84' for column 'Name' at row 1
SQL Statement:
UPDATE `dbprof`.`communication` SET `Name`='ф' WHERE `idCommunication`='1'

Я предположил, что проблема с кодировкой. Пробовал менять на utf8 и на cp1251 (set global character_set_database=utf8). Без успешно.
Может нужно в каком-то файле прописать либо еще что-нибудь?

Неактивен

 

#2 10.01.2011 17:17:44

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: Добавление данных.

Проблема не в кодировке базы, а в кодировке соединения. После
соединения нужно выполнять команду SET NAMES utf8 (ну или cp1251,
если данные в cp1251).

Неактивен

 

#3 10.01.2011 17:22:13

gloommy
Участник
Зарегистрирован: 10.01.2011
Сообщений: 3

Re: Добавление данных.

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

Отредактированно gloommy (10.01.2011 17:23:07)

Неактивен

 

#4 10.01.2011 17:43:04

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: Добавление данных.

Тогда убедитесь, что таблица communication создана не в latin1
(SHOW CREATE TABLE communication).

Неактивен

 

#5 10.01.2011 18:01:53

gloommy
Участник
Зарегистрирован: 10.01.2011
Сообщений: 3

Re: Добавление данных.

Это конечно возможно.
Как поменять если создано с latin1, обязательно заново создавать или нет?

я сделал так, но это не помогло...
alter table communication default charset=utf8;
может ребутить что надо

Отредактированно gloommy (10.01.2011 18:05:47)

Неактивен

 

#6 10.01.2011 18:12:57

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Добавление данных.

Эта команда указывает кодировку, которая будет использоваться, сели при создании строкового столбца вы не укажите явно.

По вашей проблеме см:
http://sqlinfo.ru/articles/info/5.html

Неактивен

 

#7 10.01.2011 22:58:10

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: Добавление данных.

Если данных нету — можно преобразовать командой
ALTER TABLE communication CONVERT TO CHARSET utf8;

Если данные есть, то преобразование убьет все символы, не входящие
в исходную кодировку (например, русские буквы, если изначальная ко-
дировка таблицы latin1).

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson