Итальянский хостинг. Кодировка БД.

Статус
В этой теме нельзя размещать новые ответы.

b2farm

Мой дом здесь!
Регистрация
17 Фев 2008
Сообщения
544
Реакции
202
Ребят, такая проблема:
Имеется заказчик - итальянская контора. У нее есть сайт на итальянском, русском, немецком. Контора решила перенести русскую версию на отдельный русский домен. Дали бэкап. поставили на русский хостинг, все версии сайта отображаются, кроме русской. Вроде и бэкап делали в phpmyadmin, а в самом файле кодировка не указана.

Может быть кто имел дело с итальяшками - какая у них по умолчанию кодировка на БД? Стандартные перепробовал.

Доступ к оригинальной БД не дают.
 
cp1251? проходит ???
 
если в файле в создании таблиц указано DEFAULT CHARSET=utf8:

Код:
CREATE TABLE `table` (
...
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM DEFAULT [COLOR=Red]CHARSET=utf8[/COLOR];
значит в таблицах кодировка utf8, но может быть по умолчанию какая нибудь latin1 а файл экспортирован в utf8 тогда при импорте могут быть проблемы. Можно попробовать импортировать с разными кодировками в phpmyadmin в импорте файла есть выбор кодировки (Character set of the file) и выбрать какую нибудь: utf8, latin1, cp1250...
 
cp1251? проходит ???
я же написал "стандартные перепробовал
если в файле в создании таблиц указано DEFAULT CHARSET=utf8:

Код:
CREATE TABLE `table` (
...
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM DEFAULT [COLOR=Red]CHARSET=utf8[/COLOR];
значит в таблицах кодировка utf8, но может быть по умолчанию какая нибудь latin1 а файл экспортирован в utf8 тогда при импорте могут быть проблемы. Можно попробовать импортировать с разными кодировками в phpmyadmin в импорте файла есть выбор кодировки (Character set of the file) и выбрать какую нибудь: utf8, latin1, cp1250...

да вообще какая-то фигня с этим дампом. нет там строк про кодировку вообще никаких.
имеем вот что:
Код:
CREATE TABLE `table` (
...
  PRIMARY KEY  (`id`)
) TYPE=MyISAM AUTO_INCREMENT=35 ;
 
В свое время много протанцевал с бубном на подобной трабле пришедши в конце к latin1_swedish_ci.
Но могут быть иные варианты:
(Извините за "многа букав")
West European Character Sets

Western European character sets cover most West European languages, such as French, Spanish, Catalan, Basque, Portuguese, Italian, Albanian, Dutch, German, Danish, Swedish, Norwegian, Finnish, Faroese, Icelandic, Irish, Scottish, and English.

*

ascii (US ASCII) collations:
o

ascii_bin
o

ascii_general_ci (default)
*

cp850 (DOS West European) collations:
o

cp850_bin
o

cp850_general_ci (default)
*

dec8 (DEC Western European) collations:
o

dec8_bin
o

dec8_swedish_ci (default)
*

hp8 (HP Western European) collations:
o

hp8_bin
o

hp8_english_ci (default)
*

latin1 (cp1252 West European) collations:
o

latin1_bin
o

latin1_danish_ci
o

latin1_general_ci
o

latin1_general_cs
o

latin1_german1_ci
o

latin1_german2_ci
o

latin1_spanish_ci
o

latin1_swedish_ci (default)

latin1 is the default character set. MySQL's latin1 is the same as the Windows cp1252 character set. This means it is the same as the official ISO 8859-1 or IANA (Internet Assigned Numbers Authority) latin1, except that IANA latin1 treats the code points between 0x80 and 0x9f as “undefined,” whereas cp1252, and therefore MySQL's latin1, assign characters for those positions. For example, 0x80 is the Euro sign. For the “undefined” entries in cp1252, MySQL translates 0x81 to Unicode 0x0081, 0x8d to 0x008d, 0x8f to 0x008f, 0x90 to 0x0090, and 0x9d to 0x009d.

The latin1_swedish_ci collation is the default that probably is used by the majority of MySQL customers. Although it is frequently said that it is based on the Swedish/Finnish collation rules, there are Swedes and Finns who disagree with this statement.

The latin1_german1_ci and latin1_german2_ci collations are based on the DIN-1 and DIN-2 standards, where DIN stands for Deutsches Institut fr Normung (the German equivalent of ANSI). DIN-1 is called the “dictionary collation” and DIN-2 is called the “phone book collation.”
o

latin1_german1_ci (dictionary) rules:

= A
= O
= U
= s

o

latin1_german2_ci (phone-book) rules:

= AE
= OE
= UE
= ss

In the latin1_spanish_ci collation, ‘’ (n-tilde) is a separate letter between ‘n’ and ‘o’.
*

macroman (Mac West European) collations:
o

macroman_bin
o

macroman_general_ci (default)
*

swe7 (7bit Swedish) collations:
o

swe7_bin
o

swe7_swedish_ci (default)
 
если в дампе кодировка не указана то будет ставиться по умолчанию кодировка базы (phpmyadmin: database->operations->collation)

если в дампе тест на русском читается то посмотреть что за кодировка файла и поставить такую кодировку на базе и импортировать или конвертировать дамп в utf8 и базу создать с utf8 и импортировать.

Иногда бывают дампы в utf8 но все не ascii символы записаны как два символа (например когда кодировка latin1 но в таблицу запись идёт на русском), тогда надо будет конвертировать эти символы в utf8. Если такая проблема то можно импортировать в latin1 тогда в базе тексты на русском будут нечитаемые или конвертировать отдельно тексты для каждого языка в utf8 и импортировать.

Может кодировка сайта совпадает с кодировкой базы.
 
Часто решал нестыковки методом создания базы по умолчанию, а затем конектился SQLYog-ом и менял кодировку.
Затем лишь заливал дамп.
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху