Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: снова кодировка))
 
 автор: musya   (04.05.2009 в 12:12)   письмо автору
 
 

Проблема с кодировкой при пакетной загрузке данных.
Побродил по форуму, кое-что нашёл, но проблема решена не окончательно.
Что делаю:
1. Перед запуском утилиты mysql прописываю: chcp1251
2. После запуска: SET NAMES cp1251;
3. В системном меню сменил шрифт с точечного на Лусида Консоль
4. В my.ini запись default-character-set=cp1251 стоит только в mysqld
5. Файл загрузки .txt кодировка ANSI (в Юникоде вообще не записывается ничего)

Что получается:
1. Загружаются нормально данные записаные латиницей
2. Вместо кириллицы выдаётся абракадабра (не вопросы:) )
3. Цифры - частично съедаются.

Подскажите, плиз, что сделать для правильной загрузки:)

   
 
 автор: Trianon   (04.05.2009 в 12:24)   письмо автору
 
   для: musya   (04.05.2009 в 12:12)
 

что такое загрузка ?

   
 
 автор: musya   (04.05.2009 в 12:29)   письмо автору
 
   для: Trianon   (04.05.2009 в 12:24)
 

загрузка данных из текстового файла в таблицу БД

   
 
 автор: cheops   (04.05.2009 в 12:31)   письмо автору
 
   для: musya   (04.05.2009 в 12:29)
 

Способов несколько существует, опишите поподробнее этот момент - конкретные советы по решению проблемы связаны именно со способом загрузки.

   
 
 автор: musya   (04.05.2009 в 12:33)   письмо автору
 
   для: cheops   (04.05.2009 в 12:31)
 

По книжке делаю. Через load data infile татата into table татата;

   
 
 автор: cheops   (04.05.2009 в 12:34)   письмо автору
 
   для: musya   (04.05.2009 в 12:33)
 

Должно бы сработать... а в дампе русский текст точно в кодировке cp1251, а не cp866? Если не сложно прикрепите кусочек?

   
 
 автор: musya   (04.05.2009 в 12:40)   письмо автору
14.9 Кб
 
   для: cheops   (04.05.2009 в 12:34)
 

вот

   
 
 автор: cheops   (04.05.2009 в 13:03)   письмо автору
 
   для: musya   (04.05.2009 в 12:40)
 

Нет, я имею в виду кусочек cat2.txt

   
 
 автор: musya   (04.05.2009 в 13:09)   письмо автору
15.5 Кб
 
   для: cheops   (04.05.2009 в 13:03)
 

В cat2.txt - латиница, cat.txt - кириллица

   
 
 автор: cheops   (04.05.2009 в 13:39)   письмо автору
 
   для: musya   (04.05.2009 в 13:09)
 

Прикрепите пожалуйста сам файл cat.txt (не изображение, а сам файл).

   
 
 автор: cheops   (04.05.2009 в 13:47)   письмо автору
 
   для: musya   (04.05.2009 в 13:09)
 

Вы хотите именно через LOAD DATA загружать? Это будет элемент Web-приложения? Или вам нужно просто развернуть дамп? Если последнее, то можно воспользоваться командой SOURCE
SOURCE cat.txt;

   
 
 автор: musya   (04.05.2009 в 13:51)   письмо автору
94 байт
 
   для: cheops   (04.05.2009 в 13:47)
 

Хочу понять, что не так. Делаю всё пошагово, по книге. Как я понял, Вы один из авторов. Можете посоветовать методику какую-нибудь для изучения?:) Пока читаю по главам и пробую на практике освоить прочитаное..

   
 
 автор: cheops   (04.05.2009 в 14:18)   письмо автору
 
   для: musya   (04.05.2009 в 13:51)
 

Хм... кодировка файла правильная.

PS Поступаете тоже верно, лучше продвигаться последовательно. Правда для разворачивания дампа команда LOAD FILE редко применяется, лучше ориентироваться на непосредственное использование утилиты mysql (без интерактивного режима) - самый быстрый и самый безпроблемный вариант.

   
 
 автор: Trianon   (04.05.2009 в 12:38)   письмо автору
 
   для: musya   (04.05.2009 в 12:33)
 

В операторе LOAD DATA INFILE кодировка задается явным указанием:
LOAD DATA [LOW_PRIORITY | CONCURRENT] [LOCAL] INFILE 'file_name'
    [REPLACE | IGNORE]
    INTO TABLE tbl_name
    [CHARACTER SET charset_name]
    [{FIELDS | COLUMNS}
        [TERMINATED BY 'string']
        [[OPTIONALLY] ENCLOSED BY 'char']
        [ESCAPED BY 'char']
    ]
    [LINES
        [STARTING BY 'string']
        [TERMINATED BY 'string']
    ]
    [IGNORE number LINES]
    [(col_name_or_user_var,...)]
    [SET col_name = expr,...]

   
 
 автор: musya   (04.05.2009 в 12:51)   письмо автору
 
   для: Trianon   (04.05.2009 в 12:38)
 

Не выходит. Это с какой версии? У меня 5.0.21.

З.Ы. Не ставьте в игнор новичка!!!))

   
 
 автор: Trianon   (04.05.2009 в 13:40)   письмо автору
 
   для: musya   (04.05.2009 в 12:51)
 

с любой выше 4.1
LOAD DATA INFILE 'файл'
  REPLACE INTO TABLE `таблица`
  CHARACTER SET 'cp1251';

   
 
 автор: musya   (04.05.2009 в 13:52)   письмо автору
 
   для: Trianon   (04.05.2009 в 13:40)
 

Неа, не получается.. Может руки корявые, не знаю))

   
 
 автор: Trianon   (04.05.2009 в 13:55)   письмо автору
 
   для: musya   (04.05.2009 в 13:52)
 

Работать с национальным текстом с mysql через консоль - дело крайне отвратное даже для опытного пользователя.
И если есть возможность поместить данные через более дружественный клиент - лучше ею воспользоваться. Хоть через PMA - хоть через собственный скрипт.

   
 
 автор: musya   (04.05.2009 в 13:59)   письмо автору
 
   для: Trianon   (04.05.2009 в 13:55)
 

Спасибо, запомню.

   
 
 автор: Zoyberg   (28.04.2010 в 00:59)   письмо автору
 
   для: Trianon   (04.05.2009 в 13:55)
 

столкнулся с той же проблемой.
т.е. данный раздел(6.3.пакетная загрузка) книги можно не воспринимать всерьез, и прочитать лишь для ознакомление?

   
 
 автор: Trianon   (28.04.2010 в 08:57)   письмо автору
 
   для: Zoyberg   (28.04.2010 в 00:59)
 

Это вопрос собственных предпочтений.

   
 
 автор: cheops   (04.05.2009 в 13:43)   письмо автору
 
   для: musya   (04.05.2009 в 12:51)
 

Это ключевое слово было введено начиная с 5.0.38, у вас пожалуй не сработает...

   
 
 автор: Trianon   (04.05.2009 в 13:52)   письмо автору
 
   для: cheops   (04.05.2009 в 13:43)
 

Oops... и вправду.

   
 
 автор: cheops   (04.05.2009 в 12:29)   письмо автору
 
   для: musya   (04.05.2009 в 12:12)
 

Загружаете командой SOURСE или утилитой mysql?
В самом дампе SET NAMES cp1251; прописан?

   
 
 автор: musya   (04.05.2009 в 12:30)   письмо автору
 
   для: cheops   (04.05.2009 в 12:29)
 

через утилиту mysql

   
 
 автор: Trianon   (04.05.2009 в 12:31)   письмо автору
 
   для: musya   (04.05.2009 в 12:30)
 

какой командой?

   
 
 автор: cheops   (04.05.2009 в 12:32)   письмо автору
 
   для: musya   (04.05.2009 в 12:30)
 

Если используете команду вида
mysql -u root -p database < sql.sql

прямо в дамп редактируйте и добавляйте в начало команду
SET NAMES cp1251;

   
 
 автор: ILL-JAH   (16.03.2011 в 18:46)   письмо автору
79.7 Кб
 
   для: cheops   (04.05.2009 в 12:32)
 

У меня таже беда. Пытаюсь вставить пару строк из текстового файла в таблицу. Во вставляемых словах вместо кирилицы абракадабра. Текстовый файл сделал в Блокноте.

   
 
 автор: cheops   (16.03.2011 в 18:54)   письмо автору
 
   для: ILL-JAH   (16.03.2011 в 18:46)
 

Настраивайте кодировку соединения.

PS Под новые вопросы, лучше заводить новые темы.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования