Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 23.10.2010, 23:55
Аватар для Golovastik
Профессор
Отправить личное сообщение для Golovastik Посмотреть профиль Найти все сообщения от Golovastik
 
Регистрация: 12.08.2010
Сообщений: 221

MySQl - кодировка
В какой кодировке указывать надо, чтоб достало данные из майкл в русском виде а не знаками вопроса?
Что здесь поменять нужно?
Ответить с цитированием
  #2 (permalink)  
Старый 24.10.2010, 00:23
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Вобще обычно ставится utf8_general_ci
Но вопросики могут быть из-за несоответсвия заявленной на странице кодировки и действительной кодировки текста. Так же проблема может быть в неправильной кодировки соединения с бд и тд...
Ответить с цитированием
  #3 (permalink)  
Старый 24.10.2010, 00:32
Аватар для Golovastik
Профессор
Отправить личное сообщение для Golovastik Посмотреть профиль Найти все сообщения от Golovastik
 
Регистрация: 12.08.2010
Сообщений: 221

Указал как вы написали и всё равно всё знаками вопроса.
Во как я соединяюсь:
<?php
$server = 'localhost'; //Имя сервера
$user = 'xai'; //Логин   
$password = '12345'; //Пароль
$db = 'video';
$table = 'lessons'; //Название таблицы
$error_database = '<h2>Произошла ошибка в базе данных,<br/>
в ближайшее время она будет устранена!</h2>';
$connect = mysql_connect($server,$user,$password);
if(!$connect){
echo $error_database;
exit;
};
//$connect по какому соединению мы работаем
$select = mysql_select_db($db,$connect);
if(!$select){
echo $error_database;
exit;
};
?>


Какую кодировку указывать для поля, которое вывожу?
Ответить с цитированием
  #4 (permalink)  
Старый 24.10.2010, 00:48
Аватар для B@rmaley.e><e
⊞ Развернуть
Отправить личное сообщение для B@rmaley.e><e Посмотреть профиль Найти все сообщения от B@rmaley.e><e
 
Регистрация: 11.01.2010
Сообщений: 1,810

После подключения выполните запрос
Код:
SET NAMES utf8
Ответить с цитированием
  #5 (permalink)  
Старый 24.10.2010, 00:56
Аватар для Golovastik
Профессор
Отправить личное сообщение для Golovastik Посмотреть профиль Найти все сообщения от Golovastik
 
Регистрация: 12.08.2010
Сообщений: 221

Написал так
<?php
mysql_query("SET NAMES utf8");
$server = 'localhost'; //Имя сервера
$user = 'xai'; //Логин   
$password = 't37du78ah4'; //Пароль
$db = 'video';
$table = 'lessons'; //Название таблицы
$error_database = '<h2>Произошла ошибка в базе данных,<br/>
в ближайшее время она будет устранена!</h2>';
$connect = mysql_connect($server,$user,$password);
if(!$connect){
echo $error_database;
exit;
};
//$connect по какому соединению мы работаем
$select = mysql_select_db($db,$connect);
if(!$select){
echo $error_database;
exit;
};

?>


Стало не знаками вопроса выдавать, а вот такими уже буквами.
Случилось то, чего так долго ждали РІ Рунете, РЅРѕ чего РЅРёРєРѕРіРґР° ранее еще РЅРµ было!..РџСЂРѕРёР·РѕС€ »Рѕ РїРѕ истине эпохальное событие!.. Невероятный, потрясающий подарок всем, кто интересуется заработками РІ Сети!..

Последний раз редактировалось Golovastik, 24.10.2010 в 01:28.
Ответить с цитированием
  #6 (permalink)  
Старый 24.10.2010, 10:01
Особый гость
Посмотреть профиль Найти все сообщения от monolithed
 
Регистрация: 02.04.2010
Сообщений: 4,260

Во-первых нужно посмотреть сами таблицы ели в них тоже крякозябры, то нужно самому документу задать кодировку и посмотреть чтобы каждая таблица соответствовала при мерно такой строчке:

ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;


к примеру:

CREATE TABLE `elements` (
  `id` int(11) NOT NULL auto_increment,
  `title` varchar(255) NOT NULL,
  `name` longtext NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;

Последний раз редактировалось monolithed, 24.10.2010 в 11:23.
Ответить с цитированием
  #7 (permalink)  
Старый 24.10.2010, 10:36
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от Golovastik
Стало не знаками вопроса выдавать, а вот такими уже буквами.
Случилось то, чего так долго ждали РІ Рунете, РЅРѕ чего РЅРёРєРѕРіРґР° ранее еще РЅРµ было!..РџСЂРѕРёР·РѕС€ �»Рѕ РїРѕ истине эпохальное событие!.. Невероятный, потрясающий подарок всем, кто интересуется заработками РІ Сети!..
Цитата:
Случилось то, чего так долго ждали в Рунете, но чего никогда ранее еще не было!..Произош? ?ܐޠпо истине эпохальное событие!.. Невероятный, потрясающий подарок всем, кто интересуется заработками в Сети!
Текст то в utf-8 теперь, но http-заголовок, отсылаемый твоим сервером, говорит о другом...

ЗЫ: И чтоже это за эпохальное событие такое? Головастик полез прогать в похапе?

Последний раз редактировалось danik.js, 24.10.2010 в 10:38.
Ответить с цитированием
  #8 (permalink)  
Старый 24.10.2010, 11:21
Аватар для Gozar
Отправить личное сообщение для Gozar Посмотреть профиль Найти все сообщения от Gozar
 
Регистрация: 07.06.2007
Сообщений: 7,504

Сообщение от danik.js Посмотреть сообщение
Текст то в utf-8 теперь
а вот это ещё вопрос, в utf-8 ли?!
при смене кодировки таблицы или её строк нужно и саму таблицу перезалить(экспорт импорт), иначе она останется в той кодировке в которой была, несмотря на то что будет стоять utf-8.

Если вы работает с ajax то utf-8 важно, если просто выборка и вывод то можно и в cp1251. Важно чтобы кодировка в базе соответствовала кодировке указанной в странице в тегах(для utf-8):
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta http-equiv="Content-Language" content="ru">


А также сами данные были в той же кодировке.

Если вы всё проверили, а данные всё ещё не читабельны.
смотрите заголовки посылаемые сервером
на сервер заголовки устанавливаются либо через apache либо в самом php скрипте:
header("Content-type: text/html; charset=utf-8");
__________________
Последний раз редактировалось Gozar, Сегодня в 24:14.
Ответить с цитированием
  #9 (permalink)  
Старый 24.10.2010, 11:28
Аватар для Gozar
Отправить личное сообщение для Gozar Посмотреть профиль Найти все сообщения от Gozar
 
Регистрация: 07.06.2007
Сообщений: 7,504

Сообщение от Golovastik Посмотреть сообщение
Написал так
<?php
mysql_query("SET NAMES utf8");
$server = 'localhost'; //Имя сервера
$user = 'xai'; //Логин   
$password = 't37du78ah4'; //Пароль
$db = 'video';
$table = 'lessons'; //Название таблицы
$error_database = '<h2>Произошла ошибка в базе данных,<br/>
в ближайшее время она будет устранена!</h2>';
$connect = mysql_connect($server,$user,$password);
if(!$connect){
echo $error_database;
exit;
};
//$connect по какому соединению мы работаем
$select = mysql_select_db($db,$connect);
if(!$select){
echo $error_database;
exit;
};

?>
А как это вы делаете запрос к базе(mysql_query("SET NAMES utf8")), до соединения с ней?

сначала mysql_connect, mysql_select_db и только потом mysql_query
__________________
Последний раз редактировалось Gozar, Сегодня в 24:14.

Последний раз редактировалось Gozar, 24.10.2010 в 11:30. Причина: реверсная очепятка
Ответить с цитированием
  #10 (permalink)  
Старый 26.10.2010, 02:53
Аватар для Golovastik
Профессор
Отправить личное сообщение для Golovastik Посмотреть профиль Найти все сообщения от Golovastik
 
Регистрация: 12.08.2010
Сообщений: 221

Вот полное состояние моей базы, выражены на фото.

У меня есть файл 1.php в нём такой код:


Код:
<?php
include '../blocks/database.php';  /*Соединяемся с Базой Данных*/
	

?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<link rel="stylesheet" type="text/css" href="style.css" />
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<title>Видеокурсы по заработку в Интернет</title>
</head>
<body>

<!--Шапка сайта -->
<?php include '../blocks/header.php' ?>

<!--Левая навигация-->
<?php include '../blocks/navigator_left_zar_v_internet.php' ?> 
   
<!--Правая навигация-->
<?php include '../blocks/navigator_right_zar_v_internet.php' ?> 
	
<!--Контент-->
<?php include '../blocks/kontent1.php' ?> 
	

<!--Copyright-->
<?php include '../blocks/footer.php' ?> 	

</body>
</html>
Через файл kontent1.php я вывожу всё с базы на экран, вот содержимое
kontent1.php


Код:
<div class="center">
<div class="zagolovok">Компьютерные видеокурсы для начинающих</div> <br /> 
<?php 
include '../blocks/database.php';  /*Соединяемся с Базой Данных*/
?>
 
				
<?php
//Число постов выводящих на странице
$num = 3;
@$page = $_GET['page'];
if(empty($page)){
$page = 1; 
}
 
 
$result = mysql_query("select COUNT(*) FROM lessons2",$connect);
$posts = mysql_result($result,0);
//Находим общее количество страниц
$chislo_str = intval(($posts-1)/$num)+1;
$page = intval($page);
//empty($page) Если переменной не существует или ее значение равно нулю
if(empty($page) or $page<0) $page = 1;
if($page > $chislo_str) $page = $chislo_str;
// Если ввести $page=7  тогда 7*3-3=18  
//с 18 поста будет выводится пост 18,19,20 на странице №7
$start = $page * $num - $num;  
 
 
/*--------------------Выводов Постов--------------------------------------*/
 
if ( isset ( $_GET['id'] ) ) {
	
	//Увеличиваем заданный счетчик
	$update = mysql_query ( "UPDATE `lessons2` SET `lessons2`.`obnovlenie` = `lessons2`.`obnovlenie` + 1 WHERE `lessons2`.`id` = {$_GET['id']} LIMIT 1" ) or die ( mysql_error() );
 
	//Запрос на выборку из нашей таблицы
	$query = mysql_query ( "SELECT * FROM `lessons2` WHERE `lessons2`.`id` = {$_GET['id']} LIMIT 1" ) or die ( mysql_error() );
 
	//Получаем результат
	$resalt = mysql_fetch_assoc ( $query );
 
	//Выводим полную новость
		
		 echo $resalt['podrobnosti'];
		
		 // '<br /><a href="', $_SERVER['HTTP_REFERER'], '" title="Назад">Назад</a>';
 
}
else{
 
	//Запрос на выборку из нашей таблицы
 
$query = mysql_query ( "SELECT * FROM lessons2 LIMIT $start, $num" ) or die ( mysql_error() );
while ( $resalt = mysql_fetch_assoc ( $query ) ) {
 
   echo $resalt['text'],  '</a> <span class="prosmotrov" style="line-height:45px;">Просмотров: <span class="green schetok1">',$resalt['obnovlenie'], '</span></span> ';
   }
	
 
 
//------------------------------------------------
// Стрелка назад  
if($page>1)
$nazad= '<a class="knopka_nazad1" href= ./1.php?page='.($page-1).'>Назад</a>';
else $nazad= '<span class="knopka_nazad2">Назад</span>';
	   
//Стрелка вперед  
if($page<$chislo_str)
$vpered = '<a class="knopka_vpered1" href= ../videolessons/1.php?page='.($page + 1).'>Вперёд</a>';
else $vpered= '<span class="knopka_vpered2">Вперёд</span>';
 
// Вывод меню  
$expand_to = 4; // сколько страниц должно показываться слева и справа от текущей
 
// начало и конец "соседних" страниц
$a = $page - $expand_to; if ($a < 1) $a = 1; 
$b = $page + $expand_to; if ($b > $chislo_str) $b = $chislo_str;
 
if ($a > 1) // надо ли показывать отдельно ссылку на первую и "..."
{
	$navigation[] = "<a href=\"./1.php?page=1\">1</a>";
	if ($a > 2) $navigation[] = "...";
}
 
// генерируем ссылки на "соседние" страницы
for ($i = $a; $i <= $b; $i++)
	$navigation[] = ($page == $i) ? '<span class="tek_str">'.$i.'</span>' : "<a class='str_nav' href=\"./1.php?page=$i\">$i</a>";
 
if ($b < $chislo_str) // надо ли показывать отдельно "..." и ссылку на последнюю
{
	if ($b < $chislo_str - 1) $navigation[] = '...';
	$navigation[] = "<a href=\"./1.php?page=$chislo_str\">$chislo_str</a>";
}
 
// выводим готовую навигацию
echo '<div class="navig"'.$nazad.'&nbsp;&nbsp; '.implode(' ', $navigation).'&nbsp;&nbsp;'.$vpered.'</div>';
}
?>
 
<!---------------------------------------------------------------------------->
		
	

			
		
</div>

<!---------------------------------------------------------------------------->
Файл database.php
Код:
<?php
  
$server = 'localhost'; //Имя сервера
$user = 'xai'; //Логин   
$password = '12345'; //Пароль
$db = 'video';
$table = 'lessons'; //Название таблицы
$error_database = '<h2>Произошла ошибка в базе данных,<br/>
в ближайшее время она будет устранена!</h2>';
$connect = mysql_connect($server,$user,$password);

if(!$connect){
echo $error_database;
exit;
};
//$connect по какому соединению мы работаем
$select = mysql_select_db($db,$connect);
if(!$select){
echo $error_database;
exit;
};

?>
На локальном компьютере всё достаёт русским, как пробую на
phpmyadmin 5 версии(там хостинг), такие кракозябры вылетают, уже не знаю что делать.



Ответить с цитированием
Ответ


Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
удаленная MySQL mycoding Серверные языки и технологии 10 28.07.2010 15:12
Непонятная кодировка.. Arfey Общие вопросы Javascript 14 17.06.2010 22:16
Помогите с запросом ... MySQL Arfey Серверные языки и технологии 9 16.06.2010 12:55
Как установить кодировку при записи в MySQL Arfey Общие вопросы Javascript 6 14.06.2010 18:00
Кодировка в загрузчике FancyUpload vladex AJAX и COMET 5 08.09.2009 17:32