Задавайте вопросы, мы ответим
Вы не зашли.
спасибочки, сейчас попробую
Неактивен
Всем здрасьте!
Поднимаю тему.
Имеется такой вопрос. Какая кодировка в MySQL используется по умолчанию? И, главное, как с помощью скрипта (файл .sql) вставить записи, содержащие кириллицу?
Отредактированно bRUtality (19.07.2010 10:41:11)
Неактивен
Кошмар, зачем поднимать годовалую тему?
http://sqlinfo.ru/articles/info/2.html
Неактивен
paulus написал:
Кошмар, зачем поднимать годовалую тему?
http://sqlinfo.ru/articles/info/2.html
Поднял за тем, что практические рекомендации так и не прозвучали, а хотелось бы...
Руководствуясь статьей, я сделал так:
1) Создал таблицу, использующую кодировку utf8
2) Создал файл .sql с кучей инсертов, вставлять нужно в том числе и записи на кириллице
3) Первой командой в .sql файле поставил SET NAMES UTF8
При попытке прогнать скрипт, MySQL вываливает ошибку "слишком большие данные для поля такого-то" (для тех полей, где нужно вставить кириллицу).
Подскажите, пожалуйста, где я ошибся?
Неактивен
Чтобы были практические рекомендации, нужно какую-то конкретику в проблеме.
«Слишком большие данные» (вольный перевод?) у меня ассоциируется только с
тем, что данные не влезли в колонку — сделайте колонку больше.
Я не придираюсь, правда. Сделайте несколько простых запросов, попробуйте, всё
получится.
Неактивен
paulus написал:
Чтобы были практические рекомендации, нужно какую-то конкретику в проблеме.
«Слишком большие данные» (вольный перевод?) у меня ассоциируется только с
тем, что данные не влезли в колонку — сделайте колонку больше.
Я не придираюсь, правда. Сделайте несколько простых запросов, попробуйте, всё
получится.
Да, это я так перевел В оригинале так: "Data too long for column 'adv_name' at row 1". Здесь adv_name - поле varchar(100), пытаюсь записать один русский символ.
Конкретика проблемы заключается в следующем: нужно записать в поле varchar кириллицу, любым способом, только бы записались не крякозябры. Перепробовал все что знал, ничего не получается
Какие простые запросы вы имеете ввиду?
Неактивен
[celestia] root test > SET NAMES utf8; Query OK, 0 rows affected (0.00 sec) [celestia] root test > CREATE TABLE rustest (a VARCHAR(100)) CHARSET utf8; Query OK, 0 rows affected (0.22 sec) [celestia] root test > INSERT INTO rustest VALUES ('один символ по-русски'); Query OK, 1 row affected (0.00 sec) [celestia] root test > SELECT * FROM rustest; +-----------------------------------------+ | a | +-----------------------------------------+ | один символ по-русски | +-----------------------------------------+ 1 row in set (0.00 sec)
В консоли у меня тоже utf8, разумеется. Иначе правильно делать SET NAMES в кодировку
консоли (ну или в кодировку, в которой потом будут русские буквы).
Неактивен
Премного благодарен. Кажется, я понял, где облажался - не сменил кодировку консоли на utf8.
(извинете за офф, но как в консоле виндовс менять кодировку?)
А если я хочу сделать запись в таблицу скриптом (батник запускает .sql файл с инсертами), скрипт тоже следует писать в кодировке utf8?
Неактивен
Есть подозрение, что в батнике все равно не будет ни одного русского символа
Но, разумеется, не важно, в какой кодировке он будет — важны лишь те после-
довательности байт, которые скармливаются в mysql.
Да, в windows кодировка меняется через chcp 65001.
Неактивен
paulus написал:
Есть подозрение, что в батнике все равно не будет ни одного русского символа
Но, разумеется, не важно, в какой кодировке он будет — важны лишь те после-
довательности байт, которые скармливаются в mysql.
Да, в windows кодировка меняется через chcp 65001.
Т.е. проблема неразрешима и мне придется все данные ручками набивать? о_О
Неактивен
То есть? Просто делаете sql-файл в UTF8 и скармливаете в mysql. В чем проблема?
Неактивен
paulus написал:
То есть? Просто делаете sql-файл в UTF8 и скармливаете в mysql. В чем проблема?
Все получилось. Спасибо большое!
Неактивен
Помогите буду благодарен. на сервере делаю вывод из базы данных а там ???. а на локальном все пашет нормально. кодировка везде cp1251_general_ci. кодировка сайта на cp1251_general_ci, и все таблицы в локальном и сервере cp1251_general_ci. импорт на сервер делал тоже с кодировкой cp1251_general_ci. Я как бы немного новичек... символы на английском языке отображаються нормально. все сообщения читал. mysql_query("SET NAMES CP1251"); тоже не помогло
Неактивен
вот мля........................ а нет ("SET NAMES CP1251"); это помогло файлы забыл обновить на сервере после того как поменял
Неактивен
Здравствуйте. тематика очень похожа на мою проблему, но все таки не такая как моя.
в моем случае при чтении с базы все ок. но все русские данные, которые выводятся просто из файла php отображаются ????. но самое интересное ошибка не систематическая. то есть знаки вопроса могут появиться, а могут и не появится. русская рулетка, блин )
как решить не знаю.
П.С. сайт на удаленном сервере. zhivchik[dot]ua
спасибо за помощь
Неактивен
Скорее всего, сервер не посылает кодировку браузеру, а браузер не может угадать
ее. Просто добавьте явное указание кодировки в текст страницы (а еще лучше —
в заголовок http).
К MySQL вопрос отношения не имеет
Неактивен
Уважаемые Гуру. помогите разобраться.
Проблема с записью в БД и последующим отображением кирилицы.
Изначально стояла кодировка latin1 и вместо кирилицы я получал Òåñòîâûé ñàéò, потом я изменил в редакторе во всех таблица кодировку latin1 на cp1251 проблема не решилась, вместо Тестовый сайт это - Òåñòîâûé ñàéò.
Решил добавит в корень сайта файл .htaccess вот с этим:
Отредактированно Valeri (18.05.2011 23:00:27)
Неактивен
Здравствуйте. у меня тоже такая проблема. сайт создан на денвере 3, все данные которые выбираются запросом из базы mysql кириллица ???????.
но после вставки кода начале <?PHP header("Content-Type: text/html; charset=utf-8");?> на локальном сервере все нормализовалось.
а на виртуальном хостинге нет
на денвере тип базы было inobd на сервере myisam latin shveden . пересоздала дамп на myisam залили на хостингг в utf-8 general ci все равно кириллица не отображается дамп в блокноте просматривается а вблокнот++ в режиме 1251 вопросительные знаки. в утф-8 норма не знаю что делать.
на локальном все нормально
на сервере
Тип сервера: MySQL
Версия сервера: 5.1.73 - Source distribution
Версия протокола: 10
Пользователь: ++++
Кодировка сервера: UTF-8 Unicode (utf8)
на локальном
Программа: MySQL
Версия программы: 5.5.25 - MySQL Community Server (GPL)
Версия протокола: 10
Пользователь: root@localhost
Кодировка сервера: UTF-8 Unicode (utf8)
Неактивен
Неактивен
пробовала не получается никак
Неактивен
скрины
Неактивен
1
Неактивен
2
Неактивен
может это поможеть
-- phpMyAdmin SQL Dump
-- version 4.0.9
-- http://www.phpmyadmin.net
--
-- Хост: 10.8.204.167
-- Время создания: Апр 21 2017 г., 16:38
-- Версия сервера: 5.1.73
-- Версия PHP: 5.3.3
SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";
/*!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 */;
--
-- База данных: `db1152149_muz`
--
-- --------------------------------------------------------
--
-- Структура таблицы `kaidan_keldi`
--
CREATE TABLE IF NOT EXISTS `kaidan_keldi` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`aty` varchar(50) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=6 ;
--
-- Дамп данных таблицы `kaidan_keldi`
--
Неактивен