кодировка

Привет всем.

ситуация:

база данных в 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 - не распознаёт вообще. в хедерах то же просталял - ничего не получилось. Помогите, может кто сталкивался?

А подробней, что именно не так? Не сохраняет в нужной? Тогда SET NAMES utf8

Спасибо за внимание.

В общем рассказываю.

Есть бд в 40 Гб и сайт. В бд настройки см 1 пост. Дынные хранятся в ср1251. Менять сет нэймс рисковано для своей нервной системы - мой бос тупой. Я не понимаю, сайт обращается по character_set_client или character_set_connection. А отображение есть, но кадозябры одни. Если ставить в конфиге latin1, то yii ругается.

Что хочу - чтобы данные выводились и сохранялись в понятной кодировке.

вместо latin1 в конфиге пропиши koi8-r( или koi8r, не помню )

Если не помогло то:

database - имя твоей базы

  1. mysqldump -h localhost -u dev -p --default-character-set=latin1 database > database.sql

  2. iconv -c -f latin1 -t cp1251 database.sql > database.sql

  3. sed ‘s/SET NAMES latin1/SET NAMES cp1251/g’ < database.sql > database.sql

  4. sed ‘s/DEFAULT CHARSET=latin1/DEFAULT CHARSET=cp1251/g’ < database.sql > database.sql

  5. mysql -u dev -p database -e ‘DROP DATABASE database’

  6. mysql -u dev -p -e ‘CREATE DATABASE database DEFAULT CHARSET cp1251’

  7. mysql -u dev -p --default-character-set=cp1251 database < ./database.sql

улыбнуло, не - РЕАЛЬНО улыбнуло.

маленький вопрос - за сколько вы хотите восстановить работоспособность бд из файла sql размером >40 GB

Ну базу вы ка кто же залили, или кодировка была изначально неверно, но вы далее продолжали базу наполнять?

просто ставил бд и сайт мудак . кои не пашет. переконвертить не получится - каждые 15 минут заливается ОЧЕНЬ ВАЖНАЯ инфа. Как вариант могу рассмотреть изменение в подключении или клиенте. что скажете?

В конфиге utf8, сменить кодировку файлов шаблона на utf без bom, ну и AddDefaultCharset utf-8

Не хотел плодить еще тем, поэтому отпишусь здесь.

Заметил следующее: при создании нового приложения (webapp test) под "виндой" генерируются файлы в кодировке ANSI; под линуксом же все отлично (utf8).

Можно ли что-нибудь сделать, чтоб под "виндой" генерировалось в utf8? Или я бред несу? -)

бред не несёте. А что мешает потом при переносе на линукс просто перекодировать с помощью iconv?

Ничего не мешает, просто не хотелось лишних "телодвижений" делать. Вот и спросил, может кто сталкивался и знает как решить, или это нерешаемо.)

А в чем проблема использовать редактор, который поддерживает utf8 without bom ?

Почти все популярные редакторы и иде это умеют - например, notepad++, netbeans, jetbrains php-storm и т.п.