1 (изменено: sociodim, 2013-08-25 16:33:36)

Тема: Кракозябры: кодировка UTF8 -> CP1252 при восстановлении базы данных

Добрый день!

Сервер Apache ver. 2.2.19 (Unix)
PHP version 5.2.*
MySQL ver. 5.1
CMS Wordpress


При восстановлении сбэкапенной базы данных на тот же хостинг, получаются кракозябры вот такие Центр Молодежная инициатива. Это кодировка UTF8, воспринятая как CP1252 (latin1). При этом в Notepa++ и в блокноте кракозябр нет, а при загрузке на хостинг кракозябры есть и в базе данных и на сайте:

http://img7.imageshack.us/img7/3563/bi6i.pnghttp://img11.imageshack.us/img11/8/qmlu.png

2

Re: Кракозябры: кодировка UTF8 -> CP1252 при восстановлении базы данных

Хотя декодер Лебедева букву "я" не расшифровывает: "Центр Молодежна� инициатива"

Сайт нашего центра Молодежная инициатива Балаково http://balmolod.ru:

http://img20.imageshack.us/img20/9529/4i48.jpg

Я несколько раз удалял базу данных менял сопоставление на utf-8_general_ci, cp_1251_ci, а потом уже начинал восстанавливать базу данных. Конвертировал базу данных, но из-за этого в cp_1251 получались другие кракозябры - Øèðîêàÿ ýëåêòðèôèêàöèÿ þæíûõ ãóáåðíèé äàñò ìîùíûé òîë÷îê ïîäú¸ìó ñåëüñêîãî õîçÿéñòâà (CP1251 -> CP1252).

Раньше приходилось переезжать внутри хостера и все поставилось нормально, а сейчас - нет. Правда, я сначала ставил базу данных, потом закачивал по FTP сами данные с Wordpress. А сейчас wordpress со всей макулатурой уже стоит, а я только пытаюсь восстановить базу данных.

Для получения информации по текущим кодировкам в phpMyAdmin ввёл команды:

SHOW VARIABLES LIKE "char%";

http://imageshack.us/a/img716/8960/5pr.png

SHOW VARIABLES LIKE '%collation%';

http://imageshack.us/a/img838/5486/85sc.png

SHOW GLOBAL VARIABLES LIKE "char%";

http://imageshack.us/a/img407/745/zm2q.png

Доступа к серверу нету, есть только phpMyAdmin и FTP

3

Re: Кракозябры: кодировка UTF8 -> CP1252 при восстановлении базы данных

sociodim сказал:

При этом в Notepa++ и в блокноте кракозябр нет, а при загрузке на хостинг кракозябры есть

Это очень странно. Если кириллица видна в Notepad++, то посмотрите в строке статуса что указано, там должно быть ANSI или UTF8.

4

Re: Кракозябры: кодировка UTF8 -> CP1252 при восстановлении базы данных

Да, там UNIX  | UTF-8 написано и кириллица отображается, например, "Бодрова Инна Викторовна" видятся именно так, а не кракозябры. Вот сейчас еще раз попробовал - кракозябры. Уж лучше бы в блокноте были кракозябры, а на сайте нормальный текст. sad

В wp-config.php написано CHARSET UTF-8 (как и было по дефолту). В .htaccess написал, что кодировка utf-8.

Пробовал кодировать в другие форматы и заливать на сайт, например, в CP1251, так были другие кракозябры как из википедии (https://ru.wikipedia.org/wiki/Кракозябры), когда изначальная кодировка CP1251, а представляется CP1252: Øèðîêàÿ.

Сначала думал, что это у меня UTF-8 в UTF-8 перегоняется, когда на сайт заливаю через команду в cPanel: 1-Click Restore DataBase, но нет - тогда кракозябры были бы другие: ЧелоР(https://ru.wikipedia.org/wiki/UTF8#UTF- … 0.B8.D1.8F)


Хоть стой - хоть падай

5

Re: Кракозябры: кодировка UTF8 -> CP1252 при восстановлении базы данных

Если в Notepad++ видно кириллицу, то посмотрите какое стоит сравнение в структуре таблицы.

При импорте дампа проверьте, чтобы была выбрана кодировка файла utf8.

6

Re: Кракозябры: кодировка UTF8 -> CP1252 при восстановлении базы данных

Я достал самый-самый надежный бэкап и в Notepad++ стоит ANSI as UTF

Hanut сказал:

Если в Notepad++ видно кириллицу, то посмотрите какое стоит сравнение в структуре таблицы.

Сравнение - latin1_general_ci. Такой база данных создается по умолчанию. Это правильно?

При импорте дампа проверьте, чтобы была выбрана кодировка файла utf8.

При импорте, да, utf8 стоит, но за один раз не получается импортировать через phpMyAdmin. Он импортируется за два присеста, а потом пишет, что phpMyAdmin не удается импортировать до конца базу данных:

Время скрипта вышло, если вы хотите закончить импорт, пожалуйста, повторно отправьте тот же файл и импорт возобновится. Однако на последнем прогоне данные не были разобраны, это обычно означает, PHPMyAdmin не может закончить этот импорта, если не менять пределы PHP времени.

А поменять пределы времени я не знаю как. Но загрузить базу данных получается из cPanel, но там никаких настроек не укажешь - все делается автоматом.

7

Re: Кракозябры: кодировка UTF8 -> CP1252 при восстановлении базы данных

sociodim сказал:

ANSI as UTF

Это UTF8, все хорошо, если видна кириллица.

sociodim сказал:

latin1_general_ci

Замените все latin1 на utf8, чтобы получилось utf8_general_ci.

8

Re: Кракозябры: кодировка UTF8 -> CP1252 при восстановлении базы данных

Hanut сказал:

Замените все latin1 на utf8, чтобы получилось utf8_general_ci.


Добрый вечер! Я заменил все latin1 на utf8 в базе данных в Notepad++, потом залил на хостинг. Поставил сравнение с utf8_general_ci. Залились почему-то только 2 таблицы (из 16). В одну зашел, а там опять кракозябры sad И так два раза. sad

9

Re: Кракозябры: кодировка UTF8 -> CP1252 при восстановлении базы данных

Если файл в UTF8 и в Notepad++ видна кириллица и сравнения таблиц utf8_general_ci и при импорте стоит кодировка файла utf8, то все должно работать. Ищите ошибку.

10

Re: Кракозябры: кодировка UTF8 -> CP1252 при восстановлении базы данных

Hanut сказал:

Если файл в UTF8 и в Notepad++ видна кириллица и сравнения таблиц utf8_general_ci и при импорте стоит кодировка файла utf8, то все должно работать. Ищите ошибку.

Добрый день!

Вы были правы. Просто импорт через cPanel делает такие кракозябры. Надо было импортировать через phpMyAdmin. И в связи с этим у меня есть две новости: одна хорошая, а другая плохая.

Начну, пожалуй, с хорошей smile Кириллица видится в таблицах базы данных и частями на сайте (круто!  cool ). Получилось загрузить при импорте из phpMyAdmin только 10 из 16 таблиц, а следующие шесть таблиц пустые.

Вот тут: http://forum.php-myadmin.ru/viewtopic.p … 1810#p1810 вы советовали как по отдельной таблице загружать базу данных. Все сделал, но я не понял куда указывать параметры каждой таблицы перед импортом,

Еще при создании надо указывать количество полей, а я даже не знаю сколько надо. Скажите, если не трудно, что нужно сделать с этой короткой таблицей?  smile А я потом по шаблону все сделаю

-- phpMyAdmin SQL Dump
-- version 2.11.4
-- http://www.phpmyadmin.net
--
-- Host: localhost
-- Generation Time: Aug 27, 2013 at 09:08 AM
-- Server version: 5.1.57
-- PHP Version: 5.2.17

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";

--
-- Database: `Database`
--

-- --------------------------------------------------------

--
-- Table structure for table `wp_term_relationships`
--

CREATE TABLE `wp_term_relationships` (
  `object_id` bigint(20) unsigned NOT NULL DEFAULT '0',
  `term_taxonomy_id` bigint(20) unsigned NOT NULL DEFAULT '0',
  `term_order` int(11) NOT NULL DEFAULT '0',
  PRIMARY KEY (`object_id`,`term_taxonomy_id`),
  KEY `term_taxonomy_id` (`term_taxonomy_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

--
-- Dumping data for table `wp_term_relationships`
--

11

Re: Кракозябры: кодировка UTF8 -> CP1252 при восстановлении базы данных

Копируйте от одного запроса CREATE TABLE до другого в отдельный файл и импортируйте его либо через окно выполнения SQL запроса, либо просто файлом. Таблица будет создана и данные, которые идут нижу в запросе INSERT, тоже добавятся.

12 (изменено: sociodim, 2013-08-30 12:46:39)

Re: Кракозябры: кодировка UTF8 -> CP1252 при восстановлении базы данных

Спасибо большое! Русские буквы теперь отображаются balmolod.ru, но получилось, что половина постов осталась без ссылок с главной страницы (было "page 6", а стало "page 3"). И отображаются не самые последние посты, а как будто случайные. Самое интересное, что загрузились практически все посты, и если ввести в браузер прямую ссылку или перейти через рубрику, то чаще всего пост отображается и его можно посмотреть.

Я импортировал по отдельной таблице. Все получилось, кроме wp_blc_links.sql (256 КБ) и wp_posts.sql (> 2 МБ), которые слишком большие и не успевают обработаться за 10 секунд, выделенные на работу скрипта. Пробовал загружать и сжатые в gzip, zip, и несжатые.

Скажите, пожалуйста, можно ли загрузить одну таблицу частями? Если это будут файлы с одинаковыми названиями и шапками, но разным содержимым - это может сработать?

13

Re: Кракозябры: кодировка UTF8 -> CP1252 при восстановлении базы данных

sociodim сказал:

Скажите, пожалуйста, можно ли загрузить одну таблицу частями? Если это будут файлы с одинаковыми названиями и шапками, но разным содержимым - это может сработать?

Разбейте запрос INSERT на несколько файлов, по строкам.