ExBB Community ExBB Community
 Сайт проекта ExBB Общение объединяет!
Войдите на форум при помощиВойти через loginza
 Чат на форуме      Помощь      Поиск      Пользователи     BanList BanList


 Страниц (1): [1]   

> Без описания
spirit
Отправлено: 13 марта 2012 — 14:41
Post Id



Пользователь
Newbie


Покинул форум
Сообщений всего: 40
Дата рег-ции: Февр. 2009  
Откуда: Россия, Пермь
Репутация: 0




Танцы с бубном надоели.
Попытаюсь описать проблему как можно понятней.
Значит была база данных и туда пользователями потихоньку заносились данные. И писалось все в cp1251. Сам движок и его страницы были в ansi.
И все это хорошо работало до того момента когда потребовалось внедрить jquery - и подгружать и сохранять некоторые формы асинхронно. JQuery, как выяснилось, не дружит ни с чем кроме как c utf-8. И пошел процесс перекодировки страничек. Все, хорошо - странички в utf-8. В метах прописан utf-8 и браузер это прекрасно понимает. НО! MySql тоже надо сконвертить! Как? Очень просто - дамп средствами phpMyAdmin, изменение кодировки дампа на utf-8 средствами NotePad++ и обратный процесс загрузки дампа. Вот и данные стали по русски и в utf-8... за исключением некоторых букв - И,Э,ш...

Погуглив проблему понял, что средство одно: провести замену кода битых символов так как у mysql кодировка этих символов отличается.
Классический пример решения из интернета:
CODE:

UPDATE `tbl` SET `pole` = REPLACE(
`pole`,
CONCAT( CHAR(209), CHAR(63) ),
CONCAT( CHAR(209), CHAR(136) )
);

UPDATE `tbl` SET `pole` = REPLACE(
`pole`,
CONCAT( CHAR(208), CHAR(63) ),
CONCAT( CHAR(208), CHAR(152) )
);


Это действительно решает проблему, но дело в том что у меня и новые записи уже после конвертации пишутся касячно. Помогайте! Голова взорвалась, мозг ушел от меняНедовольство, огорчение А?!
 
 
1Bot
Отправлено: 13 марта 2012 — 15:41
Post Id



Пользователь
Super Member


Покинул форум
Сообщений всего: 773
Дата рег-ции: Апр. 2009  
Откуда: Днепропетровск
Репутация: 69




Можно привести кусок дампа для описания структуры таблиц и данных с буквами "ш и И"
 
 
spirit
Отправлено: 13 марта 2012 — 16:01
Post Id



Пользователь
Newbie


Покинул форум
Сообщений всего: 40
Дата рег-ции: Февр. 2009  
Откуда: Россия, Пермь
Репутация: 0




Конечно:
CODE:
CREATE TABLE IF NOT EXISTS `users` (
`id` int(2) unsigned NOT NULL AUTO_INCREMENT,
`name` char(20) NOT NULL,
`lastname` char(20) NOT NULL,
`mail` char(129) DEFAULT NULL,
`phone` char(10) DEFAULT NULL,
`pas` char(40) DEFAULT NULL,
`type` int(1) DEFAULT NULL,
`dj` tinyint(1) DEFAULT NULL,
`lj` tinyint(1) DEFAULT NULL,
`ad` tinyint(1) DEFAULT NULL,
`mc` tinyint(1) DEFAULT NULL,
`dr` tinyint(1) DEFAULT NULL,
`vj` tinyint(1) DEFAULT NULL,
`s` tinyint(1) NOT NULL,
`gr` tinyint(1) NOT NULL,
`time` int(2) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC AUTO_INCREMENT=28 ;

--
-- Дамп данных таблицы `users`
--
INSERT INTO `users` (`id`, `name`, `lastname`, `mail`, `phone`, `pas`, `type`, `dj`, `lj`, `ad`, `mc`, `dr`, `vj`, `s`, `gr`, `time`) VALUES
(1, 'Р˜Р»СЊСЏ', 'РџСЊСЏРЅРєРѕРІ', 'XXX@mail.ru', 'XXX', 'XXX', 0, 1, 1, 1, 0, 0, 1, 1, 1, 22),


DEFAULT CHARSET=utf8 поменяно с DEFAULT CHARSET=cp1251 уже после дампа

В частности первая же запись Р˜Р»СЊСЏ - мое имя "Илья"

(Отредактировано автором: 13 марта 2012 — 16:05)

 
 
yura3d
Отправлено: 13 марта 2012 — 16:57
Post Id


Пользователь
ExBB Team
ExBB Developer
ExBB Mods Author


Покинул форум
Сообщений всего: 3394
Дата рег-ции: Февр. 2009  
Откуда: Минск, Беларусь
Репутация: 353




spirit
Попробуйте в скрипте сразу после установки соединения с MySQL выбрать кодировку:
CODE:
mysql_query('SET NAMES utf8;');
 
 
spirit
Отправлено: 13 марта 2012 — 17:11
Post Id



Пользователь
Newbie


Покинул форум
Сообщений всего: 40
Дата рег-ции: Февр. 2009  
Откуда: Россия, Пермь
Репутация: 0




yura3d, благодарю, решение было таким:

CODE:
mysqli->set_charset("utf8");

сразу после соединения с бд и дамп ненужен.
 
 
yura3d
Отправлено: 13 марта 2012 — 17:52
Post Id


Пользователь
ExBB Team
ExBB Developer
ExBB Mods Author


Покинул форум
Сообщений всего: 3394
Дата рег-ции: Февр. 2009  
Откуда: Минск, Беларусь
Репутация: 353




spirit
Обращайтесь! Рад помочь
 
 
yanker
Отправлено: 27 апреля 2012 — 02:23
Post Id


Пользователь
Newbie


Покинул форум
Сообщений всего: 1
Дата рег-ции: Апр. 2012  
Репутация: 0




Подскажите, пожалуйста, где это надо прописать? В каком файле?
 
 
1Bot
Отправлено: 10 декабря 2019 — 17:00
Post Id



Пользователь
Super Member


Покинул форум
Сообщений всего: 773
Дата рег-ции: Апр. 2009  
Откуда: Днепропетровск
Репутация: 69




spirit , вместо
CODE:
DEFAULT CHARSET=utf8

нужно
CODE:
DEFAULT CHARSET=utf8mb4


тогда будет полноценная поддержка всех символов unicode базой данных MySQL.
 
 
Страниц (1): [1]
Сейчас эту тему просматривают: 1 (гостей: 1, зарегистрированных: 0)
« MySQL »

> Похожие темы: utf-8 и буквы ш и И
Темы Форум Информация о теме Обновление
Тема должна начинаться с буквы или цифры!
Общие вопросы Ответов: 1
Автор темы: fOcs
20 февраля 2012 — 19:15
Автор: altjo
Ошибка "Тема должна начинаться с буквы или цифры!"
Общие вопросы Ответов: 6
Автор темы: Gori
23 сентября 2013 — 15:02
Автор: CAB
 



Все гости форума могут просматривать этот раздел.
Только администраторы и модераторы могут создавать новые темы в этом разделе.
Только администраторы и модераторы могут отвечать на сообщения в этом разделе.
 




Яндекс.Метрика   

Powered by ExBB
ExBB FM 1.0 RC1 by TvoyWeb.ru
InvisionExBB Style converted by Markus®

[Script Execution time: 0.0558]     [ ]