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

Форум MySQL

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

 

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

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

тема: юЙУМП УФПМВГПЧ ОЕ УППФЧЕФУФЧХЕФ ЮЙУМХ ЪОБЮЕОЙК Ч УФТПЛЕ 1
 
 автор: 1999   (22.12.2006 в 01:26)   письмо автору
 
 

при занесении в БД выдается сообщение

юЙУМП УФПМВГПЧ ОЕ УППФЧЕФУФЧХЕФ ЮЙУМХ ЪОБЮЕОЙК Ч УФТПЛЕ 1


понимаю что с кодировкой страницы что-то не то, но что именно?
меты прописываю вроде... может в локали дело?

   
 
 автор: AlexelA   (22.12.2006 в 11:11)   письмо автору
 
   для: 1999   (22.12.2006 в 01:26)
 

У вас сообщение выдано в кодировки KOI8-R. Если перекодируете на
cp1251, то получите: число столбцов не соответсвует числу значений в строке 1
Для решения вашего вопроса, установите явно кодировку cp1251

   
 
 автор: 1999   (22.12.2006 в 15:21)   письмо автору
 
   для: AlexelA   (22.12.2006 в 11:11)
 

хм... а как?))

   
 
 автор: AlexelA   (22.12.2006 в 15:36)   письмо автору
 
   для: 1999   (22.12.2006 в 15:21)
 

Как вы осуществляете вывод данных?
Имеются в виду средства вывода информации.

   
 
 автор: 1999   (22.12.2006 в 16:17)   письмо автору
 
   для: AlexelA   (22.12.2006 в 15:36)
 

помню мне такой вопрос на экзамене задали как-то)))
что за вопрос такой - как вы осуществляете вывод данных? что это значит? до сихз пор не понимаю...

беру с БД строку и передаю ее в скрипт - а потом эхом вывожу.. так вроде

   
 
 автор: AlexelA   (22.12.2006 в 16:46)   письмо автору
 
   для: 1999   (22.12.2006 в 16:17)
 

Насколько я понял, вы используете php.
Тогда посмотрите в файле конфигурации php.ini наличие директивы:

default_charset = "cp1251"

Ну а если сомневаетесь в локали, посмотрите результат выполнения скрипта:

<?php
echo setlocale(LC_ALL,0);
?>

   
 
 автор: 1999   (22.12.2006 в 17:07)   письмо автору
 
   для: AlexelA   (22.12.2006 в 16:46)
 

пхп.ини я редактировать не могу - хостинг не мой))
а скрипт вывел букву "C"... это что?

   
 
 автор: AlexelA   (22.12.2006 в 17:54)   письмо автору
 
   для: 1999   (22.12.2006 в 17:07)
 

Попробуйте добавить в начало вашего скрипта:

if(!ini_set("default_charset","cp1251")) exit("Не могу установить кодировку");

Что скрипт выдает вам сейчас?

   
 
 автор: 1999   (22.12.2006 в 20:49)   письмо автору
 
   для: AlexelA   (22.12.2006 в 17:54)
 

выдал что не может установить(

а вобще ini_get_all дает такой рез-т:

[default_charset] => Array
        (
            [global_value] => 
            [local_value] => 
            [access] => 7
        )

   
 
 автор: AlexelA   (22.12.2006 в 21:53)   письмо автору
 
   для: 1999   (22.12.2006 в 20:49)
 

У вас все данные с этого хоста идут в измененной
кодировке или только из СУБД?

   
 
 автор: 1999   (22.12.2006 в 22:06)   письмо автору
 
   для: AlexelA   (22.12.2006 в 21:53)
 

все нормально идет из БД.. в cp1251

   
 
 автор: AlexelA   (22.12.2006 в 22:13)   письмо автору
 
   для: 1999   (22.12.2006 в 22:06)
 

Тогда что выдало вам данное сообщение?
Обработчик ошибки вашего скрипта?

   
 
 автор: 1999   (22.12.2006 в 23:06)   письмо автору
 
   для: AlexelA   (22.12.2006 в 22:13)
 

ini_set выдал
а сообщение которое в теме указано выдал скрипт при обработке запроса из БД.. но если все нормально (SQL валиден), то русские буквы из БД выдаются нормально.. может в БД в KOI8-R все данные?

   
 
 автор: AlexelA   (22.12.2006 в 23:36)   письмо автору
 
   для: 1999   (22.12.2006 в 23:06)
 

а сообщение которое в теме указано выдал скрипт при обработке запроса из БД
т.е. сработал обработчик ошибки выполнения запроса вашего скрипта?

   
 
 автор: 1999   (22.12.2006 в 23:42)   письмо автору
 
   для: AlexelA   (22.12.2006 в 23:36)
 

да - там такая конструкция

$sql = "SELECT что-то там...";
$query = mysql_query($sql) or die(mysql_error());

   
 
 автор: 1999   (23.12.2006 в 05:16)   письмо автору
 
   для: 1999   (22.12.2006 в 23:42)
 

я так понял все безнадежно?

   
 
 автор: AlexelA   (23.12.2006 в 11:25)   письмо автору
 
   для: 1999   (23.12.2006 в 05:16)
 

Все не безнадежно, а достаточно интересно.
Посудите сами: из ваших ответов вытекает, что выданная
(перекодированная) строка, была получена от сервера
mysql после отработки or die(mysql_error().Но я еще
не встречал таких серверов mysql, которые бы выдавали ошибки, да и любую
другую служебную информацию, в кириллице (даже пусть и в измененной кодировке).
Возможно, у вашего хостера стоит некий скрипт, перехватывающий
сообщения от СУБД и выдающий вам подмененный результат на русском.
Это только предположение. В любом случае, обратитесь к своему
хостеру, пусть он попробует вам это объяснить.

   
 
 автор: Trianon   (23.12.2006 в 09:28)   письмо автору
 
   для: 1999   (22.12.2006 в 17:07)
 

попробуйте поставить
$query = mysql_query($sql) or die(convert_cyr_string(mysql_error(),'k','w');

Хотя смысл этого ничтожен.
Для отладки можно страницу и руками переключить.
На реальном сервере уточняющие диагностики должны ссыпаться в лог, а не пользователю на экран.

   
 
 автор: 1999   (23.12.2006 в 15:38)   письмо автору
 
   для: Trianon   (23.12.2006 в 09:28)
 

всмысле в лог? т.е. нельзя делать так?

<?
$query 
mysql_query($sql) or die(mysql_error());
?>

   
 
 автор: Trianon   (23.12.2006 в 15:58)   письмо автору
 
   для: 1999   (23.12.2006 в 15:38)
 

Делать-то можно, только Вы сами как думаете, кого из посетителей заинтересует точная причина, по которой скрипт не работает так как надо?

   
Rambler's Top100
вверх

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