danko
(Fomistoklus)
January 16, 2011, 4:26pm
1
Привет всем.
ситуация:
база данных в mysql> SHOW VARIABLES;
±--------------------------------±----------------------------+
| Variable_name | Value |
±--------------------------------±----------------------------+
| auto_increment_increment | 1 |
| auto_increment_offset | 1 |
| automatic_sp_privileges | ON |
| back_log | 50 |
| basedir | /usr/ |
| binlog_cache_size | 32768 |
| bulk_insert_buffer_size | 8388608 |
| character_set_client | latin1 |
| character_set_connection | latin1 |
| character_set_database | latin1 |
| character_set_filesystem | binary |
| character_set_results | latin1 |
| character_set_server | latin1 |
| character_set_system | utf8 |
как видно кодировка latin1 . Данные хранятся в cp1251 . Ставлю в конфиге утф8 - фигня. Ставлю цп - тоже фигня. Ставлю латин1 - не распознаёт вообще. в хедерах то же просталял - ничего не получилось. Помогите, может кто сталкивался?
Lion
(Lion__)
January 20, 2011, 6:04am
2
А подробней, что именно не так? Не сохраняет в нужной? Тогда SET NAMES utf8
danko
(Fomistoklus)
January 20, 2011, 7:12am
3
Спасибо за внимание.
В общем рассказываю.
Есть бд в 40 Гб и сайт. В бд настройки см 1 пост. Дынные хранятся в ср1251. Менять сет нэймс рисковано для своей нервной системы - мой бос тупой. Я не понимаю, сайт обращается по character_set_client или character_set_connection. А отображение есть, но кадозябры одни. Если ставить в конфиге latin1, то yii ругается.
Что хочу - чтобы данные выводились и сохранялись в понятной кодировке.
Lion
(Lion__)
January 20, 2011, 11:15am
4
вместо latin1 в конфиге пропиши koi8-r( или koi8r, не помню )
Если не помогло то:
database - имя твоей базы
mysqldump -h localhost -u dev -p --default-character-set=latin1 database > database.sql
iconv -c -f latin1 -t cp1251 database.sql > database.sql
sed ‘s/SET NAMES latin1/SET NAMES cp1251/g’ < database.sql > database.sql
sed ‘s/DEFAULT CHARSET=latin1/DEFAULT CHARSET=cp1251/g’ < database.sql > database.sql
mysql -u dev -p database -e ‘DROP DATABASE database’
mysql -u dev -p -e ‘CREATE DATABASE database DEFAULT CHARSET cp1251’
mysql -u dev -p --default-character-set=cp1251 database < ./database.sql
danko
(Fomistoklus)
January 20, 2011, 1:32pm
5
улыбнуло, не - РЕАЛЬНО улыбнуло.
маленький вопрос - за сколько вы хотите восстановить работоспособность бд из файла sql размером >40 GB
Lion
(Lion__)
January 20, 2011, 10:13pm
6
Ну базу вы ка кто же залили, или кодировка была изначально неверно, но вы далее продолжали базу наполнять?
danko
(Fomistoklus)
January 20, 2011, 10:58pm
7
просто ставил бд и сайт мудак . кои не пашет. переконвертить не получится - каждые 15 минут заливается ОЧЕНЬ ВАЖНАЯ инфа. Как вариант могу рассмотреть изменение в подключении или клиенте. что скажете?
Lion
(Lion__)
January 21, 2011, 6:22am
8
В конфиге utf8, сменить кодировку файлов шаблона на utf без bom, ну и AddDefaultCharset utf-8
Fantom_v
(Cherry 87)
August 30, 2011, 5:40pm
9
Не хотел плодить еще тем, поэтому отпишусь здесь.
Заметил следующее: при создании нового приложения (webapp test) под "виндой" генерируются файлы в кодировке ANSI; под линуксом же все отлично (utf8).
Можно ли что-нибудь сделать, чтоб под "виндой" генерировалось в utf8? Или я бред несу? -)
danko
(Fomistoklus)
August 30, 2011, 7:39pm
10
Fantom_v:
Не хотел плодить еще тем, поэтому отпишусь здесь.
Заметил следующее: при создании нового приложения (webapp test) под "виндой" генерируются файлы в кодировке ANSI; под линуксом же все отлично (utf8).
Можно ли что-нибудь сделать, чтоб под "виндой" генерировалось в utf8? Или я бред несу? -)
бред не несёте. А что мешает потом при переносе на линукс просто перекодировать с помощью iconv?
Fantom_v
(Cherry 87)
August 31, 2011, 7:20am
11
Ничего не мешает, просто не хотелось лишних "телодвижений" делать. Вот и спросил, может кто сталкивался и знает как решить, или это нерешаемо.)
mitallast
(Mitallast)
August 31, 2011, 7:47am
12
А в чем проблема использовать редактор, который поддерживает utf8 without bom ?
Почти все популярные редакторы и иде это умеют - например, notepad++, netbeans, jetbrains php-storm и т.п.