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

Форум MySQL

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

 

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

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

тема: UTF8 - вместо символа - его код
 
 автор: Hamilion   (30.05.2008 в 18:08)   письмо автору
 
 

Здравствуйте.

Решил перевести свой проект с win1251 на utf8, но пока не получается очень простая вещь:
Есть таблица:

CREATE TABLE `test` (
  `pole` varchar(255) NOT NULL default ''
) ENGINE=MyISAM DEFAULT CHARSET=utf8;


И код для тестирования:


<?php
$hostname 
"localhost";
$user "root";
$password "";
$db "test";
define("DEBUG"true);
mysql_connect($hostname$user$password);
mysql_select_db ($db);
mysql_query ("set character_set_client='utf8'");
mysql_query ("set character_set_results='utf8'");
mysql_query ("set collation_connection='utf8_general_ci'");
mysql_query ("SET NAMES 'utf8'");

if(isset(
$_POST['send'])){
    
$pole=$_POST['pole1'];
    
$q="INSERT INTO test SET pole='$pole'";
    echo 
$q."<br>";
    
mysql_query($q) or die(mysql_error());
}

$q="SELECT * FROM test";
$res=mysql_query($q) or die(mysql_error());
while(
$row=mysql_fetch_array($res)){
    echo 
$row[0]."  ";
}
?>
<br>
<form method=post>
<input type="text" name="pole1" value="<?=$pole?>">
<input type="submit" name="send" value="ok">
</form>

У меня почему-то в базу попадает не сам символ , а его код (например для O с черточкой вверху; - &#213 ;).
Ничего не пойму - смотрел даже через консоль mysql - там та же картина.
Может я неправильно символ выбрал для тестирования:)

   
 
 автор: Root   (31.05.2008 в 17:11)   письмо автору
 
   для: Hamilion   (30.05.2008 в 18:08)
 

<?php
header 
('Content-type: text/html; charset=utf-8');
...
?>

   
 
 автор: Hamilion   (02.06.2008 в 12:11)   письмо автору
 
   для: Root   (31.05.2008 в 17:11)
 

А, будет работать если я вместо этого напишу в head
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

   
 
 автор: Trianon   (02.06.2008 в 12:15)   письмо автору
 
   для: Hamilion   (02.06.2008 в 12:11)
 

А зачем такое писать в head?

   
 
 автор: BinLaden   (31.05.2008 в 17:23)   письмо автору
 
   для: Hamilion   (30.05.2008 в 18:08)
 

Как верно заметили, Вы не сообщили браузеру, что это документ в UTF-8. По умолчанию обычно в наших браузерах кодировка windows-1251, и все символы, которые в ней (windows-1251) не содержатся, преобразуются браузером при отправке данных формы вот в такую кашу.

   
Rambler's Top100
вверх

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