MySql 5.1.x: вставить в select .. кодировать строки - PullRequest
0 голосов
/ 04 декабря 2010

У меня есть 2 таблицы с одним и тем же DEFAULT CHARSET = latin1 Если я копирую некоторые данные из одной таблицы в другую с помощью команды «Вставить в () Select ()», MySql кодирует строки.Пример:

2461/P/J- -- RESO N° RM10 стал 2461/P/J- -- RESO N° RM10 обратите внимание на преобразование из ° в °

Как этого избежать?tnx в совете.

Ответы [ 2 ]

0 голосов
/ 04 декабря 2010

Можете ли вы проверить данные в исходной таблице?Если бы у вас были проблемы с кодировкой кодировки, вы бы увидели символы мусора и тому подобное, а не HTML-объекты.MySQL не конвертирует из / в сущности HTML / XML, как показывает ваш пример.

0 голосов
/ 04 декабря 2010

Этого не происходит, когда я пытаюсь это сделать (MySQL 5.1.41). Вы делаете это прямо из консоли MySQL, или вы, возможно, делаете это через MySQL API - возможно, из PHP?

Пример:

CREATE TABLE `src` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `data` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

CREATE TABLE `dst` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `data` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1

INSERT INTO src (data) VALUES ('2461/P/J- -- RESO N° RM10');

SELECT * FROM src;
+----+----------------------------+
| id | data                       |
+----+----------------------------+
|  1 | 2461/P/J- -- RESO N° RM10 |
+----+----------------------------+

INSERT INTO dst SELECT * FROM src;

SELECT * FROM dst;

+----+----------------------------+
| id | data                       |
+----+----------------------------+
|  1 | 2461/P/J- -- RESO N° RM10 |
+----+----------------------------+
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...