Есть: VPS от Агавы. Сервер: Линукс 5 Мускл. В phpmyadmin отображается: MySQL-кодировка: UTF-8 Unicode (utf8) Сами БД созданы в cp1251, сопоставление тоже. результат SHOW VARIABLES LIKE 'cha%'; Код (CODE): Variable_name Value character_set_client utf8 character_set_connection cp1251 character_set_database cp1251 character_set_filesystem binary character_set_results utf8 character_set_server cp1251 character_set_system utf8 character_sets_dir /usr/share/mysql/charsets/ Проблема: Сторонний скрипт заносит данные в Джумлу в юникоде, т.е. получаем вопросы ??? ?????? ???? и т.д. Как решить? Правил my.cnf везде где только можно проставил cp1251 Код (CODE): [client] #password = your_password port = 3306 socket = /var/lib/mysql/mysql.sock default-character-set = cp1251 [mysql] character-sets-dir=/usr/share/mysql/charsets default-character-set=cp1251 [mysqladmin] character-sets-dir=/usr/share/mysql/charsets default-character-set=cp1251 [mysqlcheck] character-sets-dir=/usr/share/mysql/charsets default-character-set=ucp1251 [mysqldump] character-sets-dir=/usr/share/mysql/charsets default-character-set=cp1251 [mysqlimport] character-sets-dir=/usr/share/mysql/charsets default-character-set=cp1251 [mysqlshow] character-sets-dir=/usr/share/mysql/charsets default-character-set=cp1251 [myisamchk] character-sets-dir=/usr/share/mysql/charsets [myisampack] character-sets-dir=/usr/share/mysql/charsets # use [safe_mysqld] with mysql-3 [mysqld_safe] err-log = /var/log/mysqld.log # add a section [mysqld-4.1] or [mysqld-5.0] for specific configurations [mysqld] character-set-server = cp1251 default-character-set = cp1251 user = mysql port = 3306 socket = /var/lib/mysql/mysql.sock pid-file = /var/run/mysqld/mysqld.pid log-error = /var/log/mysqld.log basedir = /usr datadir = /var/lib/mysql skip-bdb skip-innodb skip-locking skip-ndbcluster skip-networking #bind-address = 127.0.0.1 key_buffer = 32M sort_buffer_size = 2M read_buffer_size = 128K read_rnd_buffer_size = 256K join_buffer_size = 128K language = /usr/share/mysql/russian max_connections = 128 max_user_connections = 64 net_buffer_length = 16K max_allowed_packet = 8M table_cache = 256 max_connect_errors = 1024 max_tmp_tables = 32 tmp_table_size = 32M query_cache_size = 4M query_cache_type = 1 thread_cache = 2 thread_concurrency = 2 thread_stack = 196K # uncomment the next directive for windows-1251 sites #init_connect = 'SET NAMES cp1251' [mysqldump] quick max_allowed_packet = 8M [mysql] # uncomment the next directive if you are not familiar with SQL #safe-updates [isamchk] key_buffer = 32M sort_buffer_size = 4M read_buffer = 512K write_buffer = 512K [myisamchk] key_buffer = 32M sort_buffer_size = 4M read_buffer = 512K write_buffer = 512K [mysqlhotcopy] interactive-timeout Подскажите, а? Гугление ниего не принесло, а тут все свои
Ничего не понимаю, магия какая-то Три дня боролся, запостил сюда проблему, почти сразу проблема решил Такое уже не в первый раз Вообщем решение такое: после mysql_connect(бла бла бла); нужно прописать: mysql_query ('SET NAMES cp1251'); mysql_query ('SET CHARACTER SET cp1251'); Все работает
Fanamura Спасибо тебе огромное!!! Я сегодня весь день про..бся с этим проклятым мускулом. И это единственное что помогло. Для всех остальных поясню детальнее как справиться с этой проблемой. Во-первых: возникает она от того, что "по умолчанию MySQL-сервер" устанавливается в кодировке latin1 , - именно эта настройка и является основным нашим врагом и "производителем" знаков вопросиков "?????? ???????? ??????????". Естественно изменить данную настройку пользователь хостинга не может - у него нет прав на создание БД собственным SQL-скриптом, БД создается панелью управления хостинга, которая оставляет кодировку по умолчанию, что и приводит к дальнейшему распространению действия latin1 на вложенные объекты. Решение: после танцев с бубном до умопомрачения оно всё-же было найдено двумя постами выше... но тут небольшое уточнение: нам надо как раз найти этот Сразу оговорюсь, у меня проблема была не c Джумлой а с совсем другим скриптом, но суть излечения одна Итак: 1. С помошью виндовского поиска, или программы Text Replacer, либо любой другой проги, способной искать текст в каталоге, ищем текст "mysql_connect" (для этого просто натравливаем прогу на каталог с нужным скриптом). Когда мы находим необходимый файл, прступаем к п.2 2. Мы нашли путь к файлу, теперь открываем его Блокнотом нажимаем ctrr-a и снова ищем "mysql_connect". и находим строчку примерно такого содержания: Код (PHP): mysql_connect(DB_HOST,DB_USER,DB_PWD); после неё вставляем Код (PHP): mysql_query ('SET NAMES cp1251'); mysql_query ('SET CHARACTER SET cp1251'); сохраняем файл 3. Заливаем на сервер 4. Открываем нашу веб-страницу. (если не помогло-нажимаем F5) После этих действий я запрыгал до потолка от радости, чего и вам желаю... только потолок не пробейте )))