Master-X
Форум | Новости | Статьи
Главная » Форум » Программинг, Скрипты, Софт, Сервисы » 
Тема: MySQL кодировки и почему так
цитата
29/06/17 в 13:25
 andreich
есть ресурс

все работает MySQL кодировка CP1251

нужно перенсти на другой хост

создаю базу с CP1251? заливаю дамп половина сайта на русском половина кракозябры

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

непонятно в чем маза что на одном хостере робит, на другом нет
цитата
29/06/17 в 13:52
 Magistrator
Уже давно придуман юникод. И уже давно надо пользоваться только им.
цитата
29/06/17 в 14:03
 andreich
Magistrator: а MySQL вот эти базы в юникод можно ?
цитата
29/06/17 в 14:21
 Magistrator
Не то что мона. Нуна.
Правда в некоторых случаях при переходе на юникод секс случается.
Но это один раз. Последний.
цитата
29/06/17 в 15:50
 andreich
Magistrator: сказал а гувори б, че надо и где сделать, я не силен в mysql
цитата
30/06/17 в 01:25
 Ailk
причин может быть несколько.
1) дефолтная кодировка какая у мускула? (в настройках)
2) Соединение устанавливается в какой кодировке? ()
3) у пыха какая кодировка в дефолте? (в настройках)
4) скрипт какую кодировку использует? (устанавливает на время сеанса).
5) у сервера(апач, нгинкс) какая стоит кодировка на отдачу? ;D

ну там еще мож где наковырять можно.
Для пыха:
Для установки кодировки скрипта (в начале файла, индекса как правило):
Код:
mb_internal_encoding('CP1251');

указываем кодировку для браузера (перед выводом на страницу, либо тож в начале, если нигде не переопределится заголовок):
Код:
header('Content-Type: text/html; charset=windows-1251');

Так кажись пишется 1251.
Либо в .htaccess Код:
AddDefaultCharset Windows-1251


Для мускула, чтоб не перекодировать. Ибо это гемор и ты вероятнее всего не справишься с этим.
После установки соединения (ищи в пхп файле где оно находится) два запроса: Код:
SET NAMES 'cp1251'

Код:
SET CHARACTER SET 'cp1251'


Для смены кодировки у сервера (нгинкс если, про апач написал выше с хтакцессом) проси админа сделать для требуемого домена:
Код:
charset windows-1251;


Што касается перекодирования... ну можешь попробовать. забекапится тока не забудь ) И если скрипты не модифицированые, т.е. заводские, то нужны в utf-8 кодировке. Т.е. найти и скачать эти версии.
Конвертация таблицы мускула:
Код:
ALTER TABLE `table_name` CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci

пройтись по всем таблицам. Затем во всех таблицах пройтись по всем текстовым колонкам и в них тоже изменить кодировку. Полагаю для этого скриптец нужен, ибо руками заебешься ))
Ну и установить в настройках пхп, сервера, мускула дефолтную кодировку utf8 и проследить чтобы соединение устанавливалось такоеже (хотя из коробки обычно так и есть).
цитата
30/06/17 в 14:05
 andreich
Ailk: спасибо!

короче походу у сервака UTF по умолчанию, так как даже просто html
даже с <META http-equiv="Content-Type" content="text/html; charset=windows-1251">

херачит в UTF

проблему решил как ты выше и писал
Код:
AddDefaultCharset Windows 1251
в .htaсcess
и ебись оно конем icon_lol.gif

P.S. единственное почему броузеры тупят, у нихже есть автоопределение
цитата
30/06/17 в 14:24
 andreich
но самое странное все же

создаю базу в UTF, заливаю туда дамп выбрав что он UTF, все работает приетом база в 1251, в .htaccess ничего не прописано, вот где шаманская тема facepalm.gif
цитата
30/06/17 в 17:30
 Ailk
andreich писал:
P.S. единственное почему броузеры тупят, у нихже есть автоопределение

Ничего удивительного, просто у тебя выводится страница с 2 кодировками. Сервер отдает в утф-8, а текст на страницах в вин-1251.

andreich писал:
создаю базу в UTF, заливаю туда дамп выбрав что он UTF, все работает приетом база в 1251

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

До кучи нада будет выставить в твоем редакторе кодировку utf-8 без BOM. Винда ебучая сохраняет в вин-1251 по дефолту.

Короче перейти на утф и не ибать мозги никогда больше.
цитата
30/06/17 в 19:44
 andreich
Ailk писал:
Короче перейти на утф и не ибать мозги никогда больше

да то понятно
цитата
30/06/17 в 19:46
 andreich
Ailk писал:
До кучи нада будет выставить в твоем редакторе кодировку utf-8 без BOM

smail54.gif а вот это мега тема smail54.gif, респект и уважуха
цитата
11/07/17 в 17:01
 localhost
база дампится, перекодируется в utf (в том же линухе можно сделать), в консаоли mysql дропается база и создается заново в utf8_general
заливается назад
проверить работу скриптов на сайте
цитата
11/07/17 в 18:42
 andreich
localhost писал:
перекодируется в utf (в том же линухе можно сделать)

а можно тут поподробнее, а то вы все пишите перекодируется, а как хрен кто пишет
цитата
11/07/17 в 19:36
 localhost
andreich писал:
а можно тут поподробнее, а то вы все пишите перекодируется, а как хрен кто пишет


iconv -f cp1251 -t utf8 base1251.sql -o base_utf.sql

к примеру так
цитата
11/07/17 в 19:42
 andreich
localhost: ну и получи +8 в карму crutop06.gif


Эта страница в полной версии