PDA

Просмотр полной версии : Касяки с кодировками


kdk
11.11.2009, 01:56
У меня есть бд
CREATE TABLE `asd1` (
`id` varchar(10) NOT NULL,
`FIO` varchar(50) default NULL
);
Почему когда я ввожу русские символы меняеться кодировка и бд сохраняеться непонятная кодировка(фывфы).
Можете подсказать в чем касяк????

index.php

<script type="text/javascript" src="js/jquery-1.3.2.min.js"></script>
<script type="text/javascript" src="js/jquery.form.js"></script>
<script type="text/javascript">
$(document).ready(function(){

// связываем событие submit с нужной формой
$('#izmenNastroikiObshii').submit(function() {
var options = {
target: "#infoNastroiki",
beforeSend: function ()
{
$("#infoNastroiki").html("<img src='ajax-loader.GIF' />");
},
timeout: 3000 // тайм-аут
};

$(this).ajaxSubmit(options);
return false;
});



});
</script>

<div id='infoNastroiki'></div>
<form id="izmenNastroikiObshii" action="look.php" method="post">
Текст
<input type="text" name="FIO" id="FIO">
<input type="submit" value="Send">
</form>
look.php

<?php
$connect=@mysql_connect("localhost","root","");
if(!$connect)
{
exit("<p>В настоящий момент база даных не доступна.");
}
if(!@mysql_select_db("asd",$connect))
{
exit("<p>В настоящий момент база даных не доступна.");
}

$FIO=$_POST['FIO'];
$zapros="INSERT INTO `asd1` ( `FIO` ) VALUES ('$FIO');";

if(!mysql_query($zapros))
{
$error="error Ошибка с базой данных зайдите позже.";
}


function closemysql()
{
mysql_close($connect);
}
?>

Termin@L
11.11.2009, 02:54
CREATE TABLE `asd1` (
`id` varchar(10) NOT NULL,
`FIO` varchar(50) default NULL
)
ENGINE = MYISAM DEFAULT CHARSET = cp1251;
попробуй так.

nerezus
11.11.2009, 04:09
CHARSET = cp1251 Только вот в вебе надо юзать utf-8. Всегда.

LStr1ke
11.11.2009, 04:13
$query = "SELECT VERSION()";
$ver = mysql_query($query);
if(!$ver) exit("Ошибка при определении версии MySQL-сервера");
$version = mysql_result($ver, 0);
list($major, $minor) = explode(".", $version);
$ver = $major.".".$minor;
if((float)$ver >= 4.1) mysql_query("SET NAMES 'cp1251'");
Используй сразу после
mysql_connect() & mysql_select_db()

Sharky
11.11.2009, 04:17
Только вот в вебе надо юзать utf-8. Всегда.
как сказал кто-то из великих: "Существует всего две кодировки: Unicode и Someothershit"


по теме: set names копай

TDKronuS
13.11.2009, 13:43
Если уже ничего не поможет, то принудительно меняй:

<?PHP
function utf8_win1($s) {
$s=strtr($s,array("\xD0\xB0"=>"а", "\xD0\x90"=>"А", "\xD0\xB1"=>"б", "\xD0\x91"=>"Б","\xD0\xB2"=>"в", "\xD0\x92"=>"В", "\xD0\xB3"=>"г", "\xD0\x93"=>"Г", "\xD0\xB4"=>"д", "\xD0\x94"=>"Д", "\xD0\xB5"=>"е", "\xD0\x95"=>"Е", "\xD1\x91"=>"ё", "\xD0\x81"=>"Ё","\xD0\xB6"=>"ж", "\xD0\x96"=>"Ж", "\xD0\xB7"=>"з", "\xD0\x97"=>"З", "\xD0\xB8"=>"и","\xD0\x98"=>"И", "\xD0\xB9"=>"й", "\xD0\x99"=>"Й", "\xD0\xBA"=>"к", "\xD0\x9A"=>"К","\xD0\xBB"=>"л", "\xD0\x9B"=>"Л", "\xD0\xBC"=>"м", "\xD0\x9C"=>"М", "\xD0\xBD"=>"н","\xD0\x9D"=>"Н", "\xD0\xBE"=>"о", "\xD0\x9E"=>"О", "\xD0\xBF"=>"п", "\xD0\x9F"=>"П","\xD1\x80"=>"р", "\xD0\xA0"=>"Р", "\xD1\x81"=>"с", "\xD0\xA1"=>"С", "\xD1\x82"=>"т","\xD0\xA2"=>"Т", "\xD1\x83"=>"у", "\xD0\xA3"=>"У", "\xD1\x84"=>"ф", "\xD0\xA4"=>"Ф","\xD1\x85"=>"х", "\xD0\xA5"=>"Х", "\xD1\x86"=>"ц", "\xD0\xA6"=>"Ц", "\xD1\x87"=>"ч", "\xD0\xA7"=>"Ч", "\xD1\x88"=>"ш", "\xD0\xA8"=>"Ш", "\xD1\x89"=>"щ", "\xD0\xA9"=>"Щ", "\xD1\x8A"=>"ъ", "\xD0\xAA"=>"Ъ", "\xD1\x8B"=>"ы", "\xD0\xAB"=>"Ы", "\xD1\x8C"=>"ь", "\xD0\xAC"=>"Ь", "\xD1\x8D"=>"э", "\xD0\xAD"=>"Э", "\xD1\x8E"=>"ю", "\xD0\xAE"=>"Ю", "\xD1\x8F"=>"я", "\xD0\xAF"=>"Я", "\xD0\x87"=>"Ї", "\xD1\x97"=>"ї", "\xD1\x96"=>"і", "\xD0\x86"=>"І"));
return $s;
}
?>