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
и ебись оно конем
P.S. единственное почему броузеры тупят, у нихже есть автоопределение
цитата
30/06/17 в 14:24
andreich
но самое странное все же
создаю базу в UTF, заливаю туда дамп выбрав что он UTF, все работает приетом база в 1251, в .htaccess ничего не прописано, вот где шаманская тема
цитата
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
а вот это мега тема
, респект и уважуха
цитата
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 в карму
Новая тема
Ответить
Эта страница в полной версии