1 (изменено: Hanut, 2010-03-20 23:35:44)

Тема: Нужна помощь с кодировкой.

Буду благодарен за любую помощь, сам начал заниматься сайтостроительством недавно, поэтому не знаю в чём может быть проблема.
Постараюсь предоставить максимум информации:
БД создана в UTF-8

Таблицы созданы с использованием ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci;

Сопоставление соединения с MySQL: utf8_general_ci

character_set_client    utf8
character_set_connection    utf8
character_set_database    utf8
character_set_filesystem    binary
character_set_results    utf8
character_set_server    cp1251
character_set_system    utf8

PHP скрипт:
$includes[content]="
".iif($error_msg,"<script>alert('$error_msg');</script>")."
<div align=\"center\">
<form action=\"index.php?view=account&ac=new_fad&action=add&".$url_variables."\" method=\"post\" onSubmit=\"submitonce(this)\">
<table>
    <tr>
        <td>Title: </td>
        <td><input type=\"text\" name=\"title\" value=\"$title\"></td>
    </tr>
    <tr>
        <td>Target Url: </td>
        <td><input type=\"text\" name=\"target\" value=\"$target\"></td>
    </tr>
    <tr>
        <td>Description: </td>
        <td><textarea name=\"fad\">$fad</textarea></td>
    </tr>
    <tr>
        <td colspan=2 align=\"center\"><input type=\"submit\" value=\"Add Featured Ad\"></td>
    </tr>
</table>
</div>
Он вводит данные в БД, причём вот в чём парадокс: title нормально сохраняется на русском, а вот  Description кракозябрами...
Если в ручную через phpmyadmin переписать кракозябры на русский, то он нормально отображается.

Соединение с БД:
  function connect($thehost, $thedb, $theuser, $thepwd) {
      $this->Host=$thehost;
    $this->Database=$thedb;
    $this->User=$theuser;
    $this->Password=$thepwd;

    if ( 0 == $this->Link_ID ) {
      $this->Link_ID=mysql_connect($this->Host, $this->User, $this->Password);
      if (!$this->Link_ID) {
        $this->halt("Link-ID == false, connect failed");
      }
      if (!mysql_query(sprintf("use %s",$this->Database),$this->Link_ID)) {
        $this->halt("cannot use database ".$this->Database);
      }
//     if (!mysql_query("SET NAMES UTF8"); // В данной строке ошибка, попробуйте ту, что указана ниже.
mysql_query("SET NAMES UTF8", $this->Link_ID);
    }
  }


Я уже в отчаинии! Доступа к настройкам сервера нет.

2

Re: Нужна помощь с кодировкой.

Прокомментировал код.

Если вы меняли кодировки таблиц туда-сюда, когда в них были данные, то попробуйте их пересоздать заново.

3 (изменено: sssvladimir, 2010-03-21 16:44:13)

Re: Нужна помощь с кодировкой.

на новом хостинге, возникла другая проблема
phpmyadmin при просмотре любой таблицы выдаёт ошибку
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 2
___________________
SELECT *
FROM `banners`
LIMIT ,
___________________
Только вот этот текст меняется в зависимости от таблиц

как это исправить?
кодировка базы и таблиц utf8

4

Re: Нужна помощь с кодировкой.

sssvladimir
Видно, что LIMIT не задан. Попробуйте вручную составить запрос вида:

SELECT *
FROM `banners`
LIMIT 0,10