Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Кодировка ?????
 
 автор: toproot   (28.11.2009 в 12:39)   письмо автору
 
 

на хостинге было все впорядке, установил CMSшку на сервер свой, и русский язык знаками вопроса.
Причем что очень интересно : Нормально отоображается русский текст который выводится из скрипта , а все что выводится из базы данных, отоображается ??????????
Уже Header utf8, windows-1251, cp1251, Meta http-equiv, ничо не помогает.

  Ответить  
 
 автор: gen   (28.11.2009 в 13:58)   письмо автору
 
   для: toproot   (28.11.2009 в 12:39)
 

Я энтим тожа мучался и мне ктой-то подсказал делать так:

$query = "SELECT * FROM categ WHERE id='$id'";
mysql_query("SET CHARSET cp1251;"); // энто надыть вставлять во все такие места
$result=mysql_query( $query, $aDBLink);

попробуй можа поможет

  Ответить  
 
 автор: toproot   (28.11.2009 в 15:15)   письмо автору
 
   для: gen   (28.11.2009 в 13:58)
 

очень интересно если поставить на поле кодировку utf8_unicode_ci

Ðóññêèé òåêñò - в базе данных (phpmyadmin) , тогда на сайте Русский текст.
а если в пхпмуадмин - Русский Текст, тогда на сайте ??????? ?????
то есть я со скрипта ввожу Русский текст - а в базе получается Ðóññêèé òåêñò, а на сайте нормально отооражается

а cp1251_general_ci - в базе данных все окей, а на сайте только знаки вопроса.

  Ответить  
 
 автор: tvv123456   (28.11.2009 в 14:04)   письмо автору
 
   для: toproot   (28.11.2009 в 12:39)
 

>что выводится из базы данных, отоображается ??????????
А вы проверьте в самой базе у вас нормальный текст(а то у мен один раз вместо текста одни вопросы были, а я мучался с кодировками)

  Ответить  
 
 автор: gen   (28.11.2009 в 14:13)   письмо автору
 
   для: tvv123456   (28.11.2009 в 14:04)
 

Чтобы в базе было нормально нужно нажимать в админе сравнение cp1251_general_ci
а чтобы еще и выводило нормально я вставлял в скрипт
mysql_query("SET CHARSET cp1251;");
во все места где есть типа того
$query = "SELECT * FROM categ WHERE id='$id'";
$result=mysql_query( $query, $aDBLink);
между этими двумя строчками
то есть получалось
$query = "SELECT * FROM categ WHERE id='$id'";
mysql_query("SET CHARSET cp1251;");
$result=mysql_query( $query, $aDBLink);

  Ответить  
 
 автор: tvv123456   (28.11.2009 в 14:19)   письмо автору
 
   для: gen   (28.11.2009 в 14:13)
 

mysql_query("SET CHARSET cp1251;"); - вот этим я никогда не пользовался и всегда все нормально
были проблемы когдакодировка в базе не совпадала с кодировкой в файлах(не знаю как правильно сказать надеюсь понятно и так)

Еще один раз проблемы возникли когда при заполнении базы не указал кодировку и в базу занесли одни ???

  Ответить  
 
 автор: toproot   (28.11.2009 в 15:02)   письмо автору
 
   для: gen   (28.11.2009 в 14:13)
 

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

  Ответить  
 
 автор: toproot   (29.11.2009 в 14:01)   письмо автору
 
   для: gen   (28.11.2009 в 14:13)
 

Просто написал после выбора базы данных mysql_query("SET CHARSET cp1251;");
и сразу все стало на свои места. Спасибо!

  Ответить  
 
 автор: mihdan   (30.11.2009 в 17:04)   письмо автору
 
   для: gen   (28.11.2009 в 14:13)
 

Если уж вы и используете

<?php mysql_query("SET NAMES 'cp1251'"); ?>
,

то не нужно совать это при каждом запросе, достаточно после выбора базы:

config.php


<?php
...
mysql_select_db();
mysql_query("SET NAMES 'cp1251'");
...

?>

  Ответить  
 
 автор: toproot   (28.11.2009 в 14:58)   письмо автору
 
   для: tvv123456   (28.11.2009 в 14:04)
 

Нет, в базе данных нормальный текст.
кстати пхпмуадмин редактирует нормально и с русским текстом, а мой скрипт при редактировании(с русским) выдает ошибку :
mysql_error()
Incorrect string value: '\xC4\xEE\xEC\xE0\xF8\xED...' for column 'name' at row 1, Но не во всех полях, textarea уже работает с локалки, с другого компа почемуто ошибку выдавало

  Ответить  
 
 автор: Jackkum   (28.11.2009 в 20:40)   письмо автору
 
   для: toproot   (28.11.2009 в 12:39)
 

<?php

$cfg
['sql']['host'] =   "localhost";
$cfg['sql']['user'] =        "root";
$cfg['sql']['pass'] =            "";
$cfg['sql']['db']   =     "test_db";

class 
CDB
{
    
    function 
CDB()
    {
        
        global 
$cfg;
        
        if ( 
$link = @mysql_connect$cfg['sql']['host'], $cfg['sql']['user'], $cfg['sql']['pass'] ) )
        {
            if( !
$db = @mysql_select_db$cfg['sql']['db'], $link ) )
                echo 
"Не удалось выбрать базу данных";

        }
        else
            echo 
"Не удалось подключится к базе данных";
        
        @
mysql_query("SET NAMES cp1251");
    }
    
    function 
close()
    {
        @
mysql_close();
    }
    
    
// Другие функции БД
}

$db = new CDB();
//$db->setQuery( $sql );
?>


И не надо каждый запрос посылать команду set names, достаточно один раз...

  Ответить  
 
 автор: toproot   (29.11.2009 в 14:58)   письмо автору
 
   для: Jackkum   (28.11.2009 в 20:40)
 

@mysql_query("SET NAMES cp1251"); решил вопрос

  Ответить  
 
 автор: Andi27rus   (22.04.2010 в 08:45)   письмо автору
 
   для: toproot   (29.11.2009 в 14:58)
 

Здравствуйте! У меня такая же проблема. Создал в phpmyadmin базу данных с таблицей.
В таблице поля с типом varchar(40).
Вот код php:
<?
$db = mysql_connect("localhost", "alex","12345");
mysql_select_db("Database", $db);
mysql_query("SET CHARSET cp1251;");
$result = mysql_query("SELECT * FROM firma WHERE id='2'",$db);
$myrow = mysql_fetch_array($result);
echo $myrow['dol'];
echo "<br>".$myrow['lastname'];
?>
И всё равно выскакивают вопросы.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования