Jump to content
Дизайн и модификация IPS Community IPBSkinsBETA
Search In
  • More options...
Find results that contain...
Find results in...
Sign in to follow this  
Скала

Кодировка БД

Recommended Posts

Здравствуйте, сообщения в БД отображаются в виде: (Легендарный Каплан, чемпион Кавказа 2001, 2002РіРі., чемпион Р РѕСЃСЃРёРё Рё РЎРќР“ 2002Рі. владелец Руслан Караев.)

но на самом форуме они отображаются нормально. Подскажите, почему?

Share this post


Link to post
Share on other sites

Это utf8 который отображается как cp1251. Данные в базе заносятся в неправильной кодировке, такое случается если соединение установлено в кодировке отлично от той, в которой находится текст.

Share this post


Link to post
Share on other sites

Обычно делается бэкап с кодировкой соединения cp1251, потом полученный бэкап импортируется с соединением utf8. Также устанавливается правильное соединения на форуме (./conf_global.php), чтобы в будущем данные не перекодировались при записи в бд.

Не пробовал - конвертировать сразу средствами mysql, в теории должно сработать. Но в любом случае следует ответственно подойти к задаче, и прежде чем делать какие-то изменения с рабочей базы, основательно протестировать на тестовом сервере, иначе можно безвозвратно покацать данные в ней.

  • Upvote 1

Share this post


Link to post
Share on other sites

Теоретически, должно помочь следующее:

 

1. Как писали выше, сделать бэкап базы данных, например, программой SypexDumper_2010 (подойдет бесплатная версия).

 

2. Прописать кодировку соединения в файле conf_global.php: $INFO['sql_charset'] = 'utf8';

 

3. Через оболочку phpMyAdmin установить кодировку таблиц базы данных как utf8_general_ci

Для этого для каждой таблицы выполнить запрос вида:

ALTER TABLE `ip55_admin_login_logs` CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;

где ip55_ - префикс таблиц вашей база данных (заменить на свой или удалить, если у вас нет префикса).

 

4. В настройках форума прописать для языка ru_RU.UTF-8 и для системы UTF-8

mT5Pd.jpg

 

5. Переконвертировать данные в таблицах в кодировку utf8, используя официальный конвертатор от производителя форумов IPB (аттач).

 

Вариант 1 (в виде аддона): https://mega.co.nz/#!bQoFhbCC!_Ysk1CaIQ0f-tMajDSca4u-BkRJyxH8B3PM_HCnQ6Q4

Вариант 2 (в виде скрипта для ssh): https://mega.co.nz/#!6JxzTBLQ!tYicLYeXrbNm3V4hDmfNx5n_lgPSQ1_-0fCmSEp7fUU

 

6. Если ничего выше не помогло, обратитесь в раздел платных услуг тут на форуме.

  • Upvote 2

Share this post


Link to post
Share on other sites

спасибо большое, помогите разобраться с конвертером, не понял последний абзац:

Web or command line?
This converter is available with two interfaces. There is a web version that you can launch using the button below. 
The preferred method is to use the command line version. If you have shell access with your hosting account, then please launch the shell converter interface by using cd to navigate to your community root and then run php cli.php and follow the onscreen prompts. If you are running from the Windows command prompt or your shell client does not support colors, then run php cli.php --basic.

Start Web Converter

 

при нажатии Start Web Converter скачивает файл index.php куда его нужно загрузить?

Share this post


Link to post
Share on other sites

Обычно делается бэкап с кодировкой соединения cp1251, потом полученный бэкап импортируется с соединением utf8. Также устанавливается правильное соединения на форуме (./conf_global.php), чтобы в будущем данные не перекодировались при записи в бд.

Не пробовал - конвертировать сразу средствами mysql, в теории должно сработать. Но в любом случае следует ответственно подойти к задаче, и прежде чем делать какие-то изменения с рабочей базы, основательно протестировать на тестовом сервере, иначе можно безвозвратно покацать данные в ней.

нужно:

1. поставить на сервере кодировку: ср1251_general_ci

2. Экспортировать БД с кодировкой win-1251

3. импортировать БД с кодировкой utf-8

 

я правильно понял? или что-то не так?

Share this post


Link to post
Share on other sites

1) Верните Вашу бд в исходное состояние, чтоб и сравнение было cp_1251 (Все в первоначальный вид, как и было), то думаю Вы делов там понаделали.

2) Прочитать инструкцию.

3) Дойти до вкладки

Другие способы

Конвертирование посредством самого MySQL

 

4) Скрипт конвертнет все в utf8_general_ci, но сравнение будет другое стоять, поменяете его на utf8_general_ci

5) Проверить таблицы после конвертации вручную (Например откройте ibf_post) на читабельны вид. (нет иероглифов и тд)

6) Удалить скрипт, пользоваться форумом.

 

Или стукнете в ЛС, оставьте свой скайп, я Вам сам конвертну.

  • Upvote 1

Share this post


Link to post
Share on other sites
1. поставить на сервере кодировку: ср1251_general_ci

Не на сервере, а в клиенте который будет делать бэкап выбрать кодировку соединения cp1251.

Share this post


Link to post
Share on other sites

Непонятки полные.

 

Сравнение стоит utf8_general_ci, кодировка тоже такая, но структура в cp1251, хотел преобразовать дампером и нотепадом, но результат не дает. (Нотепад преобразовывал на половину, многое было в ???? знаках)

Все возможное, перепробовал. У меня мысли такие, что переиграли конвертером.

На денвере тоже проверял.

  • Upvote 1

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

- Декодировал нотепадом, под Windows 8 он криво работает показывало половину базы нормально, а половину нет , сохранил и снова открыл вроде ���� не было.

 

Но есть одно НО надписи покорежило, но я на них внимания не обращался. при импорте они наладятся.

--
-- Структура таблицы `admin_login_logs`
--

 

- Там была проблема с языками, видно при импорте оно все стало в ������

- Сбросил все кеши и тд, в конфиге все поправил заработало, поиском по базе �����

 

Снова повторюсь, скориптом конвертации нельзя пользоваться по 2 раза и тд.

Share this post


Link to post
Share on other sites

спасибо большое Атаману, помог!)

появилась маленькая проблемка, не отображаются в "списке пользователей" те, у кого ники РУССКИЕ как это исправить можно? просто пользователи волнуются из-за этого...

заранее спасибо

Share this post


Link to post
Share on other sites

Скорее всего, перекодировать базу с помощью официального перекодировщика (выше). У меня на сайте такие пользователи отображаются.

Share this post


Link to post
Share on other sites

проблему решил, обновил имена пользователей вручную

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...