Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Всеми любимая кодировка=)  (Прочитано 7761 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Avdey
Участник

ru
Offline Offline

« : 05-05-2012 10:37 » 

У меня в базу данных сохраняется данные кракозябрами, что делать?

Ситуация следующая:

index.php в кодировке UTF-8

Код:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Документ</title>
<script src="jquery.js" type="text/javascript" language="javascript"> </script>
<script language="javascript">
$(document).ready(function()
{
$("#button").click(function()
{
$.post("do.php",{name:$("#name").val()}, function()
        {
$("#list").load("check.php");
$("#name").val("");

})
.complete(function() { alert("Завершение выполнения");})

});
});

</script>

</head>
<body>
<div id="list" style="padding-left:300px; border:1px solid #000; padding:20;">
<?php 
require_once("check.php");
?>

</div>
<div id="module">
<div id="module_name">
    Название:
</div>   
<div id="module_action">
<div id="insert"><input type="text" id="name"/></div>
    </div>
    </div>
    <div id="module" style="text-align:center">
        <input type="button" id="button" value="Добавить"/></div>
    </div>
    <form action="do.php" method="POST">
        <div id="module" style="text-align:center">
        <input type="text" name="name" id="name"/><br />
        <input type="submit" id="button" value="Добавить"/>
        </div>
    </form>
</body>
</html>

check.php в кодировке UTF-8

Код:
<?php 
$db_host
=&#39;localhost&#39;;
$db_name=&#39;test&#39;;
$db_login=&#39;Avdey&#39;;
$db_pass=&#39;&#39;;
mysql_connect($db_host,$db_login,$db_pass);
mysql_select_db($db_name);
$sql_place_type mysql_query("SELECT*FROM name");
while($place_type mysql_fetch_array($sql_place_type)){
?>

                <div id="checkbox">
            <input type="checkbox" name="type[]" id="type[]" value="<?=$place_type[name]?>"/><?=$place_type[name]?>
                </div>
<?php
}
?>


do.php в кодировке UTF-8

Код:
<?php 

$db_host
=&#39;localhost&#39;;
$db_name=&#39;test&#39;;
$db_login=&#39;Avdey&#39;;
$db_pass=&#39;&#39;;
mysql_connect($db_host,$db_login,$db_pass);
mysql_select_db($db_name);

$name $_POST[&#39;name&#39;];
if($name == ""){echo "Результат";}else{
mysql_query("INSERT INTO name (name) VALUES (&#39;$name&#39;)");}

echo "POST =".$_POST[&#39;name&#39;]."";

?>


Использую в index`e асинхронный запрос, отсылает даные файлу do и как готов ответ, обнавляет <div id="checkbox"> файлом check.php

Все данные отображаются нормально, но захожу в базу данных через phpmyadmin и там все в кракозябрах, хотя кодировка таблиц и базы в utf8_general_ci, почему в базу сохраняются кракозябры не понятно =(((

Думал что это из-за аджакс запроса через jQuery-библиотеку кодировка передаваемых данных херится, а как видно из index`са то там ниже ещё обычная форма откравки, через неё тоже кракозябры в базу записываются, а браузер всё ровно отображает...=(
Просто решил сделать сайт с нуля на <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> а опыта нет, подскажите что не так?

Записан
Sla
Команда клуба

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #1 : 05-05-2012 10:41 » 

смотреть в сторону
http://php.net/manual/en/function.mysql-set-charset.php
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
Avdey
Участник

ru
Offline Offline

« Ответ #2 : 05-05-2012 17:54 » new

Ага, спасибо, всё получилось.

Использовал следующий код:

Код:
$conn = mysql_connect($db_host,$db_login,$db_pass);
mysql_query("SET character_set_results = 'utf8', character_set_client = 'utf8', character_set_connection = 'utf8', character_set_database = 'utf8', character_set_server = 'utf8'", $conn);

А также через notepad++ поменял всем файлам кодировку на  UTF-8 (без BOM) и всё отображается и работает шикарно=)

Хотелось бы спросить следующее, а не будет ли проблем в будующем если в каждом файле который будет запускаться асинхрона (через Ajax, jQuery) будет ссылка, допустим на database.php, в котром прописаны парметры подключения к базе и код указанный выше?
« Последнее редактирование: 06-05-2012 07:12 от Avdey » Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines