Кодировка, кодировка
Кодировка, кодировка
1. После импорта файла .sql (кодировка UTF8) русские буквы отображаются как при просмотре в режиме MSDOS.
Галочка unicode выставлена.
Файл .sql сгенерирован MySQL, phpMyAdmin читает его корректно.
Что делать?
2. Как использовать при вводе данных значения для полей SET, ENUM?
Галочка unicode выставлена.
Файл .sql сгенерирован MySQL, phpMyAdmin читает его корректно.
Что делать?
2. Как использовать при вводе данных значения для полей SET, ENUM?
Для прояснения ситуации ответьте, пожалуйста, на следующие вопросы:
1. Какой версией dbForge Studio for MySQL Вы пользуетесь? Назовите пожалуйста полную версию.
2. Как Вы выполняете файл .sql - в SQL документе, через Мастер импорта или через Мастер выполнения скриптов?
3. Корректно ли открывается Ваш файл, например, в Блокноте или другом редакторе? Т.е. убедитесь, что файл действительно в UTF-8 кодировке.
4. Какую кодировку имеет колонка, в которую Вы импортируете данные?
1. Какой версией dbForge Studio for MySQL Вы пользуетесь? Назовите пожалуйста полную версию.
2. Как Вы выполняете файл .sql - в SQL документе, через Мастер импорта или через Мастер выполнения скриптов?
3. Корректно ли открывается Ваш файл, например, в Блокноте или другом редакторе? Т.е. убедитесь, что файл действительно в UTF-8 кодировке.
4. Какую кодировку имеет колонка, в которую Вы импортируете данные?
1. 3.50.310.1 Русская версия (проверял версию 3.50.290.1 - тоже самое). ОС: XP, Vista.
2. Файл .sql - выполняется через Мастер импорта или как скрипт - результаты одинаковые.
3. Да, файл записан в utf8 (в частности, Блокнот это показывает). Формируется стандартными средствами MySQL.
4. Вся база имеет кодировку utf8, некорректно импортируются поля и вообще, любая информация в базе, имеющие русские буквы. Явная вставка в sql-файл директив SET NAMES utf8 или SET NAMES cp1251 ничего не меняет.
Если импорт сделан с помощью phpmyadmin или с помощью MySQL, то отображение в вашей системе и последующие изменения - правильные.
Если импорт сделан, используя экспортный файл вашей системы - то вроде бы всё правильно. Кстати, импорт файла (база из 27 таблиц), созданного MySQL, длится 25 сек, а созданного вашей системой - 30 сек! (При выполнении скрипта - 22 и 45 сек).
2. Файл .sql - выполняется через Мастер импорта или как скрипт - результаты одинаковые.
3. Да, файл записан в utf8 (в частности, Блокнот это показывает). Формируется стандартными средствами MySQL.
4. Вся база имеет кодировку utf8, некорректно импортируются поля и вообще, любая информация в базе, имеющие русские буквы. Явная вставка в sql-файл директив SET NAMES utf8 или SET NAMES cp1251 ничего не меняет.
Если импорт сделан с помощью phpmyadmin или с помощью MySQL, то отображение в вашей системе и последующие изменения - правильные.
Если импорт сделан, используя экспортный файл вашей системы - то вроде бы всё правильно. Кстати, импорт файла (база из 27 таблиц), созданного MySQL, длится 25 сек, а созданного вашей системой - 30 сек! (При выполнении скрипта - 22 и 45 сек).
К сожалению, у нас не получается воспроизвести данную проблему. Не могли бы Вы нам прислать дополнительную информацию:
- файл, с которым у Вас проблема - можно с данными только для одной таблицы
- DDL таблицы, для которой Вы вставляете данные
- значения следующих переменных Вашего сервера (посмотреть можно в нашем приложении в окне "Переменные сервера"):
character_set_client
character_set_connection
character_set_database
character_set_results
character_set_server
character_set_system
Да, конечно.
1. Dump
-- MySQL dump 10.13 Distrib 5.1.30, for Win32 (ia32)
--
-- Host: localhost Database: ec
-- ------------------------------------------------------
-- Server version 5.1.36-community
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
--
-- Table structure for table `directions`
--
DROP TABLE IF EXISTS `directions`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `directions` (
`directionid` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT 'ID',
`title` varchar(200) COLLATE utf8_unicode_ci NOT NULL COMMENT 'название',
`description` text COLLATE utf8_unicode_ci NOT NULL COMMENT 'описание',
`lastupdate` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`directionid`)
) ENGINE=InnoDB AUTO_INCREMENT=106 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AVG_ROW_LENGTH=3276;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Dumping data for table `directions`
--
LOCK TABLES `directions` WRITE;
/*!40000 ALTER TABLE `directions` DISABLE KEYS */;
INSERT INTO `directions` VALUES (101,'Художественно-эстетическая направленность','Включает с себя различные творческие объединения (пение, рисование, театр, различные области искусства).\r\nДеятельность направлена на развитие эстетического восприятия, творческих способностей детей и их самовыражение.','2009-01-17 21:17:53'),(102,'Культурологическая направленность','Работа объединений по данному направлению включает многогранное развитие личности, расширяет общий кругозор, способствует изучению различных традиции, народных ремёсел.','2009-01-17 21:17:53'),(103,'Научно-техническая направленность','Развивает навыки работы с материалами и инструментами, способствует развитию пространственного мышления.\r\nРабота в кружке \"Информационный портал Центра\" развивает логическое и алгоритмическое мышление, даёт знания по информационным технологиям в Интернете.','2009-01-17 21:18:22'),(104,'Физкультурно-спортивная направленность','Занятия в секциях и кружках способствуют сохранению и укреплению здоровья, развитию логического мышления, двигательных навыков, общей физической подготовки.','2009-01-17 21:18:22'),(105,'Туристско-краеведческая направленность','Работа по данному направлению простирается от изучения истории Москвы до поисковой деятельности в различных регионах страны.','2009-01-17 21:18:32');
/*!40000 ALTER TABLE `directions` ENABLE KEYS */;
UNLOCK TABLES;
2. DDL
-- Скрипт сгенерирован Devart dbForge Studio for MySQL, Версия 3.50.310.1
-- Дата: 08.07.2009 19:35:03
-- Версия сервера: 5.1.36-community
-- Версия клиента: 4.1
CREATE TABLE t.directions(
directionid INT (10) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 'ID',
title VARCHAR (200) NOT NULL COMMENT 'название',
description TEXT NOT NULL COMMENT 'описание',
lastupdate TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (directionid)
)
ENGINE = INNODB
AUTO_INCREMENT = 106
AVG_ROW_LENGTH = 3276
CHARACTER SET utf8
COLLATE utf8_unicode_ci;
3. Переменные сервера
character_set_client=utf8
character_set_connection=utf8
character_set_database=utf8
character_set_results=utf8
character_set_server=utf8
character_set_system=utf8
Все переменные collation_* = utf8_general_ci
1. Dump
-- MySQL dump 10.13 Distrib 5.1.30, for Win32 (ia32)
--
-- Host: localhost Database: ec
-- ------------------------------------------------------
-- Server version 5.1.36-community
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
--
-- Table structure for table `directions`
--
DROP TABLE IF EXISTS `directions`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `directions` (
`directionid` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT 'ID',
`title` varchar(200) COLLATE utf8_unicode_ci NOT NULL COMMENT 'название',
`description` text COLLATE utf8_unicode_ci NOT NULL COMMENT 'описание',
`lastupdate` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`directionid`)
) ENGINE=InnoDB AUTO_INCREMENT=106 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AVG_ROW_LENGTH=3276;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Dumping data for table `directions`
--
LOCK TABLES `directions` WRITE;
/*!40000 ALTER TABLE `directions` DISABLE KEYS */;
INSERT INTO `directions` VALUES (101,'Художественно-эстетическая направленность','Включает с себя различные творческие объединения (пение, рисование, театр, различные области искусства).\r\nДеятельность направлена на развитие эстетического восприятия, творческих способностей детей и их самовыражение.','2009-01-17 21:17:53'),(102,'Культурологическая направленность','Работа объединений по данному направлению включает многогранное развитие личности, расширяет общий кругозор, способствует изучению различных традиции, народных ремёсел.','2009-01-17 21:17:53'),(103,'Научно-техническая направленность','Развивает навыки работы с материалами и инструментами, способствует развитию пространственного мышления.\r\nРабота в кружке \"Информационный портал Центра\" развивает логическое и алгоритмическое мышление, даёт знания по информационным технологиям в Интернете.','2009-01-17 21:18:22'),(104,'Физкультурно-спортивная направленность','Занятия в секциях и кружках способствуют сохранению и укреплению здоровья, развитию логического мышления, двигательных навыков, общей физической подготовки.','2009-01-17 21:18:22'),(105,'Туристско-краеведческая направленность','Работа по данному направлению простирается от изучения истории Москвы до поисковой деятельности в различных регионах страны.','2009-01-17 21:18:32');
/*!40000 ALTER TABLE `directions` ENABLE KEYS */;
UNLOCK TABLES;
2. DDL
-- Скрипт сгенерирован Devart dbForge Studio for MySQL, Версия 3.50.310.1
-- Дата: 08.07.2009 19:35:03
-- Версия сервера: 5.1.36-community
-- Версия клиента: 4.1
CREATE TABLE t.directions(
directionid INT (10) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 'ID',
title VARCHAR (200) NOT NULL COMMENT 'название',
description TEXT NOT NULL COMMENT 'описание',
lastupdate TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (directionid)
)
ENGINE = INNODB
AUTO_INCREMENT = 106
AVG_ROW_LENGTH = 3276
CHARACTER SET utf8
COLLATE utf8_unicode_ci;
3. Переменные сервера
character_set_client=utf8
character_set_connection=utf8
character_set_database=utf8
character_set_results=utf8
character_set_server=utf8
character_set_system=utf8
Все переменные collation_* = utf8_general_ci
Мы проверили Ваши тестовые данные - у нас все в порядке.
Скорее всего дело в том, что Вы не указали при открытии файла в какой кодировке он сохранен. По умолчанию, кодировка определяется автоматически, если файл содержит необходимую информацию. В противном случае берется кодировка по умолчанию в системе.
Укажите, пожалуйста, кодировку UTF-8 в диалоге "Открыть файл" внизу в специальном поле "Кодировка".
Соответственно, при сохранении файла тоже необходимо указывать желаемую кодировку, иначе файл будет сохранен в кодировке по умолчанию.
Скорее всего дело в том, что Вы не указали при открытии файла в какой кодировке он сохранен. По умолчанию, кодировка определяется автоматически, если файл содержит необходимую информацию. В противном случае берется кодировка по умолчанию в системе.
Укажите, пожалуйста, кодировку UTF-8 в диалоге "Открыть файл" внизу в специальном поле "Кодировка".
Соответственно, при сохранении файла тоже необходимо указывать желаемую кодировку, иначе файл будет сохранен в кодировке по умолчанию.
1. Не нашел диалог "Открыть файл" - а какой файл - который для импорта (его надо открыть предварительно? а потом что делать?).
Я попробовал открыть файл (созданный MySQL), указав вторую в списке кодировку (utf8) - результат тот же, хотя этот же файл правильно читается и блокнотом и другими блокнотными редакторами и правильно импортируется MySQL.
2. При дампе таблицы MySQL уже знает в какой кодировке и что записано и помещает данную информацию в дамп-файл, которая должна считываться при импорте. Как раз эта информация по какой-то причине и не определятся автоматически. Может быть есть еще что-то настроечное?
3. Я могу прислать сам файл, сгенерированный MySQL, а не Ctrl-C - Ctrl-V, тогда проверка будет более чистой.
Я попробовал открыть файл (созданный MySQL), указав вторую в списке кодировку (utf8) - результат тот же, хотя этот же файл правильно читается и блокнотом и другими блокнотными редакторами и правильно импортируется MySQL.
2. При дампе таблицы MySQL уже знает в какой кодировке и что записано и помещает данную информацию в дамп-файл, которая должна считываться при импорте. Как раз эта информация по какой-то причине и не определятся автоматически. Может быть есть еще что-то настроечное?
3. Я могу прислать сам файл, сгенерированный MySQL, а не Ctrl-C - Ctrl-V, тогда проверка будет более чистой.
Дело в том, что в Вашем случае скорее всего файл не содержит преамбулы, которая собственно и дает возможность определить кодировку файла. В наших мастерах импорта и выполнения скрипта на данный момент не предусмотрено задание кодировки пользователем и все происходит в автоматическом режиме (определение кодировки по преамбуле, если не удается определить - открывается в кодировке по умолчанию).
Мы реализуем данную функциональность в новой версии dbForge Studio for MySQL v3.60, которая будет доступна в течение 2-3 недель.
Сейчас же у Вас есть способ решить Вашу задачу с помощью выполнения Вашего sql-файла в SQL документе. Для этого:
- откройте файл через диалог "Открыть файл" с указанием нужной кодировки
- нажмите кнопку выполнить скрипт на панеле инструментов SQL.
В данном случае у Вас все должно получиться. В принципе, мастер импорта делает практически тоже самое, только без документа.
В любом случае, мы будем Вам признательны, если Вы пришлете нам свой файл на адрес поддержки support (собака) devart.com.
Мы реализуем данную функциональность в новой версии dbForge Studio for MySQL v3.60, которая будет доступна в течение 2-3 недель.
Сейчас же у Вас есть способ решить Вашу задачу с помощью выполнения Вашего sql-файла в SQL документе. Для этого:
- откройте файл через диалог "Открыть файл" с указанием нужной кодировки
- нажмите кнопку выполнить скрипт на панеле инструментов SQL.
В данном случае у Вас все должно получиться. В принципе, мастер импорта делает практически тоже самое, только без документа.
В любом случае, мы будем Вам признательны, если Вы пришлете нам свой файл на адрес поддержки support (собака) devart.com.