Author Topic: Частичная проблема с русским 1.1.7 помогите!!!  (Read 7414 times)

0 Members and 1 Guest are viewing this topic.

Offline Valery

  • Newbie
  • *
  • Posts: 23
    • View Profile
 Мозг опух... 8O
Стояла 1.7.4, поставил заново 1.7.7, на локале отладил - все хорошо, базу переношу на хост - в ПХП админе вижу таблицы нормально, а часть данных (названия категорий и описания - кракозябрами). Чего мне копать????

Offline V@no

  • If you don't tell me what to do, I won't tell you where you should go :)
  • Global Moderator
  • 4images Guru
  • *****
  • Posts: 17.849
  • mmm PHP...
    • View Profile
    • 4images MODs Demo
Похоже на различные кодировки на локалке и на хосте. Проверьте, чтобы у баз были одинаковые кодировки перед переносом данных.
Your first three "must do" before you ask a question:
Please do not PM me asking for help unless you've been specifically asked to do so. Such PMs will be deleted without answer. (forum rule #6)
Extension for Firefox/Thunderbird: Master Password+    Back/Forward History Tweaks (restartless)    Cookies Manager+    Fit Images (restartless for Thunderbird)

Offline Valery

  • Newbie
  • *
  • Posts: 23
    • View Profile
На сервере: (SHOW VARIABLES LIKE 'char%')

Variable_name    Value
character_set_client   utf8
character_set_connection   utf8
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/

На Денвере запрос выдает ошибку  :( - я не знаю как посмотреть
Сравнение стоит utf8_general_ci и в таблицах тоже utf8_general_ci

Offline Valery

  • Newbie
  • *
  • Posts: 23
    • View Profile
Решил так:
файл db_mysql.php
Code: [Select]
  function Db($db_host, $db_user, $db_password = "", $db_name = "", $db_pconnect = 0) {
    $connect_handle = ($db_pconnect) ? "mysql_pconnect" : "mysql_connect";
    if (!$this->connection = @$connect_handle($db_host, $db_user, $db_password)) {
      $this->error("Could not connect to the database server ($db_host, $db_user).", 1);
    }
    if ($db_name != "") {
      if (!@mysql_select_db($db_name)) {
        @mysql_close($this->connection);
        $this->error("Could not select database ($db_name).", 1);
      }
    }
  //Установка кодировки utf8.
  mysql_query('SET  character_set_database  =  utf8');
  mysql_query('SET  NAMES  utf8');
return $this->connection;
  }

Все заработало, правда опять при добавлении записей в БД ругается, хотя вроде как записи добавляются в таблицу правильно.

При редактировании фото:
DB Error: Bad SQL Query: INSERT INTO 4images_wordmatch (image_id, word_id, name_match, desc_match, keys_match) SELECT DISTINCT 2040, word_id, 0, 0, 1 FROM 4images_wordlist WHERE word_text = 'пана�оник'
Duplicate entry '2040-1' for key 'image_word_id'
Фотография была отредактирована.

При добавлении фото:
DB Error: Bad SQL Query: INSERT INTO 4images_wordmatch (image_id, word_id, name_match, desc_match, keys_match) SELECT DISTINCT 2041, word_id, 0, 0, 1 FROM 4images_wordlist WHERE word_text = '��'
Duplicate entry '2041-8' for key 'image_word_id'

Offline Valery

  • Newbie
  • *
  • Posts: 23
    • View Profile
Строка:
mysql_query('SET  character_set_database  =  utf8');
необязательна.

Кто бы еще это помог исправить:
DB Error: Bad SQL Query: INSERT INTO 4images_wordmatch (image_id, word_id, name_match, desc_match, keys_match) SELECT DISTINCT 2062, word_id, 0, 0, 1 FROM 4images_wordlist WHERE word_text = 'монако'
Duplicate entry '2062-10' for key 'image_word_id'
Фотография была отредактирована.