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

Форум MySQL

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

 

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

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

тема: опять иероглифы...
 
 автор: noob   (28.05.2006 в 17:32)   письмо автору
132 байт
 
 

Уже смешно спрашивать конечно..)) стока тем тут было.. но я все перечитал.. ничего не нашел...
.

<?php
include "config.php";
$ath=mysql_query("select*from authors where id_author=2;");
$author=mysql_fetch_array($ath);
echo 
$author['about'];
?> 

mysql 5.0.21 (винда)
выводит ??®?? ¬¬???. значение about на русском. английский показывает нормально.... Записывал значение через MySQL Command Line Client. Да и там нормально отображается. иероглифы тока когда выходит в хтмл. пробовал все
даже в пхп.ини default_charset = "cp1251" :)
в хттпд.конф AddDefaultCharset windows-1251

эти команды перед выводом тоже пробовал:
mysql_query("set character_set_client='cp1251'");
set character_set_results='cp1251';
set collation_connection='cp1251_general_ci'
set names 'cp1251'

<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
се равно иероглифы :(

   
 
 автор: cheops   (29.05.2006 в 00:34)   письмо автору
 
   для: noob   (28.05.2006 в 17:32)
 

Скорее всего кодировка в MySQL Command Line Client - 866, в обычно командной строке её меняют при помощи
chcp 1251

Попробуйте добавить запись из PHP-скрипта - если кодировка будет выводится корректно, значит дело именно в этом.

http://www.softtime.ru/forum/read.php?id_forum=3&id_theme=354

   
 
 автор: noob   (29.05.2006 в 17:28)   письмо автору
 
   для: cheops   (29.05.2006 в 00:34)
 

при добавлении записи (на русском) из пхп ошибка - Data too long for column 'about' at row 1

   
 
 автор: cheops   (29.05.2006 в 17:41)   письмо автору
 
   для: noob   (29.05.2006 в 17:28)
 

А какой тип имеет столбец about и что туда помещается?

   
 
 автор: noob   (29.05.2006 в 18:37)   письмо автору
 
   для: cheops   (29.05.2006 в 17:41)
 

вот как создавался: 'CREATE TABLE authors ( ....,about text,.....)' вот.. все.. просто текст. пытаюсь записать туда русское слово.

   
 
 автор: cheops   (29.05.2006 в 18:45)   письмо автору
 
   для: noob   (29.05.2006 в 18:37)
 

А откуда помещаются данные (из mysql.exe, из PHP-скрипта, из phpMyAdmin)?

   
 
 автор: noob   (29.05.2006 в 18:46)   письмо автору
 
   для: cheops   (29.05.2006 в 18:45)
 

из пхп скрипта.. он выше написан....даже конфиг приложен..))

   
 
 автор: cheops   (29.05.2006 в 18:52)   письмо автору
 
   для: noob   (29.05.2006 в 18:46)
 

Вместо прикреплённого конфигурационного файла, попробуйте использовать следующий
<?php
    $dblocation 
"localhost";
    
$dbname "database";
    
$dbuser "root";
    
$dbpasswd "";

  
// Устанавливаем соединение с базой данных
  
$dbcnx = @mysql_connect($dblocation,$dbuser,$dbpasswd);
  if (!
$dbcnx) exit( "<P>В настоящий момент сервер базы данных не доступен, поэтому корректное отображение страницы невозможно.</P>" );
  if (! @
mysql_select_db($dbname,$dbcnx)) exit ( "<P>В настоящий момент база данных не доступна, поэтому корректное отображение страницы невозможно.</P>" );

  
// Определяем версию сервера
  
$query "SELECT VERSION()";
  
$ver mysql_query($query);
  if(!
$ver) exit("Ошибка при определении версии MySQL-сервера");
  
$version mysql_result($ver0);
  list(
$major$minor) = explode("."$version);
  
// Если версия выше 4.1 сообщаем серверу, что будем работать с
  // кодировкой cp1251
  
$ver $major.".".$minor;
  if((float)
$ver >= 4.1)
  {
    
mysql_query("SET NAMES 'cp1251'");
  }
?>

   
 
 автор: noob   (29.05.2006 в 18:56)   письмо автору
 
   для: cheops   (29.05.2006 в 18:52)
 

я пробовал set names cp 1251... все равно ничего... при выводе иерогливы, при записи Data too long for column 'about' at row 1

   
 
 автор: noob   (30.05.2006 в 19:28)   письмо автору
 
   для: noob   (28.05.2006 в 17:32)
 

все равно при добавлении русского текста путем mysql_query(); пишет Data too long for column 'about' at row 1 ...даже с вашим конфигом.

   
 
 автор: cheops   (30.05.2006 в 22:36)   письмо автору
 
   для: noob   (30.05.2006 в 19:28)
 

Хм... страно, а это какая версия MySQL? Вообще не дожно возникать такой ошибки - дело происходит под Windows?

   
 
 автор: noob   (31.05.2006 в 16:05)   письмо автору
 
   для: cheops   (30.05.2006 в 22:36)
 


mysql 5.0.21 (винда)

   
 
 автор: noob   (01.06.2006 в 13:43)   письмо автору
 
   для: noob   (28.05.2006 в 17:32)
 

:-/

   
 
 автор: Сквиртел13   (01.06.2006 в 15:11)   письмо автору
 
   для: noob   (01.06.2006 в 13:43)
 

Вижу ты пока еще тоже не знаешь что делать)))

   
Rambler's Top100
вверх

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