[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: не распознает русские символы в БД
t-mac
Всем привет! Такая проблема: при просмотре содержимого БД в phpMyAdmin те поля, в которых есть русские символы, вместо русским символов заносится что-то такого рода: Гриневич Р�ван Вячеславович.

Помогите пожалуйста, что-то с кодировкой, но не знаю что. Слышал, что проблема распространеннная.

Заранее благодарен.



Спустя 3 минуты, 49 секунд (14.03.2010 - 19:56) Mirexzpalich написал(а):
Сделай SQL запрос:
set names [кодировка]

Кодировка - это та в которой создавалась база. Если русский не распознает, то пробуй кодировки с поддержкой русского. Такие как cp866, cp1251, utf8...

Спустя 18 минут, 34 секунды (14.03.2010 - 20:15) Reppa написал(а):
У меня была такая проблема. Попробуй сразу после обращения к базе добавить в код:
<? mysql_query("SET NAMES `windows-1251`"); ?>

+ в настройках базы измени кодировку: phpmyadmin - база - таблица - структура - поле "сравнение" например на utf8_unicode_ci или cp1251_general_ci

Должно помочь wink.gif

Спустя 25 минут, 58 секунд (14.03.2010 - 20:41) t-mac написал(а):
БД portal - таблица reg на localhost 

Ошибка

SQL-запрос :

SET names[cp1251]

Ответ MySQL:
#1064 - You have an error in your SQL syntax near 'names[cp1251]' at line 1


Вот такую бяку выдает....

Спустя 5 минут, 34 секунды (14.03.2010 - 20:46) Nikitian написал(а):
t-mac
Квадратные скобочки не нужны

Спустя 18 минут, 32 секунды (14.03.2010 - 21:05) t-mac написал(а):
БД portal на localhost 

Ошибка

SQL-запрос :

SET names cp1251

Ответ MySQL:
#1064 - You have an error in your SQL syntax near 'names cp1251' at line 1


Аналогичная беда.........

Спустя 16 минут, 13 секунд (14.03.2010 - 21:21) Mirexzpalich написал(а):
попробуй кодировку в кавычки поставить. Пробуй разные кодировки.

Спустя 1 час, 7 минут, 13 секунд (14.03.2010 - 22:28) Reppa написал(а):
Вот блин, я ж тебе написал целиком. blink.gif
запрос к базе ты делал - mysql_query?

Спустя 1 день, 23 часа, 43 минуты, 10 секунд (16.03.2010 - 22:12) t-mac написал(а):
Reppa, прописал всё целиком, как Вы показали......

Вот фрагмент (начало):


<?php
mysql_connect("localhost","root","");
mysql_selectDB('portal');
mysql_query("SET NAMES 'windows-1251'");


Результат не изменился..... sad.gif

Спустя 1 час, 1 минута, 52 секунды (16.03.2010 - 23:13) t-mac написал(а):
Ребят, помогите пожалуйста.....

Спустя 3 часа, 43 минуты, 47 секунд (17.03.2010 - 02:57) AHDPEu написал(а):
У тебя текст в utf8 записывается, а база похоже windows-1251
Reppa правильно написал.
Попробуй с SET NAMES 'UTF-8' создать новую запись и посмотри в каком она виде пришла.

Спустя 17 часов, 43 минуты, 22 секунды (17.03.2010 - 20:41) t-mac написал(а):
Ребят, все равно "корявки" заносит вместо русских символов......
Вот сделал:

<?php
mysql_connect("localhost","root","");
mysql_selectDB('portal');
mysql_query("SET NAMES 'UTF-8'");


Не работает..... sad.gif

Фрагмент из БД:

iduser login pas pas1 email fio strana gorod pol datarod deatel
28 tmac 111 111 tmac@inbox.ru Grinevich Россия Краснодар polm 0000-00-00 Студент ККЭП


Спустя 1 час, 26 минут, 17 секунд (17.03.2010 - 22:07) t-mac написал(а):
Помогите пожалуйста.....

Спустя 1 час, 33 минуты, 49 секунд (17.03.2010 - 23:41) gaizjad написал(а):
какую ты хочешь кодировку (win...1251 или utf8)?
как твой скрипт заносит данные в базу?
кодировка самого скрипта пхп?
content-type - charset в заголовке хтмл документа, если данные заносятся с формы?
тип таблиц mysql?
blink.gif

Спустя 1 час, 28 минут, 37 секунд (18.03.2010 - 01:09) t-mac написал(а):
У меня есть файл регистрации reg.html и к нему пхп-скрипт rg.php. Данные в БД заносятся посредством формы и обработчика пхп-скрипта. В reg.html (форма заполнения регистрации) я не писал кодировки, наверное какая-то по умолчанию, но не знаю какая sad.gif Заносятся данные в БД методом POST


Вот вроде все....Почему траблы - не знаю

P.S.: У меня денвер 2, возможно это тоже играет роль.....

Спустя 14 часов, 33 минуты, 13 секунд (18.03.2010 - 15:43) gaizjad написал(а):
вот к примеру у вас структура документа:
<html>
<head>
<title>Помогите разобраться!!! -> Форум PHP программистов</title>
</head>
<body>
...
</body>
</html>

нужно добавить строку <meta http-equiv="content-type" content="text/html; charset=windows-1251" />
и сюда вставить нужную кодировку (в данном случае windows-1251)

Т.е должно получиться примерно так:

<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=windows-1251" />
<title>Помогите разобраться!!! -> Форум PHP программистов</title>
<body>
...
</body>
</html>

Спустя 14 минут, 59 секунд (18.03.2010 - 15:58) gaizjad написал(а):
а потом уже в самом скрипте указывать данную кодивроку и слать в базу 'SET NAMES `кодировка`';
после чего запихавать туда данные с формы в таблицу с той же кодировкой

Спустя 2 часа, 50 секунд (18.03.2010 - 17:58) t-mac написал(а):
Итак, по-прежнему не получается увидеть русские символы в БД
Приведу полностью текст reg.html - форма регистрации:

<html>
<head>
<meta
http-equiv="content-type" content="text/html; charset=utf8" />
<title>
регистрация пользователя</title>
<style
type="text/css">
<!--
.
стиль2 {
font-family: "DS Stamper"
}
.стиль3
{color: #FF9900}
-->

</style>
</head>
<body
bgcolor=#000000 background="g/g4.png" style="background-repeat:
no-repeat ; background-position:top;"
>
<form
action="http://localhost/rg.php" method="POST">
<div
align="center">
<p>
 </p>
<p
class="стиль3"><span class="стиль2">Регистрация пользователя</span></p>
<p
class="стиль3"> </p>
<p
class="стиль3"><br>
<br>
</p>
<table
width="583" border="0">
<tr>
<td
width="296" bordercolor="#000000" class="стиль3"><span class="стиль2">Логин*</span></td>
<td
width="271" class="стиль3"><span class="стиль2">
<input
type="text" name="login" size="25">
</span></td>
</tr>
<tr>
<td
class="стиль3"><span class="стиль2">E-mail*</span></td>
<td
class="стиль3"><span class="стиль2">
<input
type="text" name="email" size="25">
</span></td>
</tr>
<tr>
<td
class="стиль3"><span class="стиль2">Пароль*</span></td>
<td
class="стиль3"><span class="стиль2">
<input
type="password" name="pas" size="25">
</span></td>
</tr>
<tr>
<td
class="стиль3"><span class="стиль2">Повторите пароль*</span></td>
<td
class="стиль3"><span class="стиль2">
<input
type="password" name="pas1" size="25">
</span></td>
</tr>
<tr>
<td
height="28" class="стиль3"><span class="стиль2">Ваше ФИО*</span></td>
<td
class="стиль3"><span class="стиль2">
<input
type="text" name="fio" size="25">
</span></td>
</tr>
<tr>
<td
class="стиль3"><p align="left" class="стиль2">Дата рождения</p>
<p
align="center" class="стиль2"></p></td>
<td
class="стиль3"> </td>
</tr>
<tr>
<td
colspan="2" class="стиль3"><span class="стиль2">день
<select size="1" name="den">
<option
value="1">1</option>
<option
value="2">2</option>
<option
value="3">3</option>
<option
value="4">4</option>
<option
value="5">5</option>
<option
value="6">6</option>
<option
value="7">7</option>
<option
value="8">8</option>
<option
value="9">9</option>
<option
value="10">10</option>
<option
value="11">11</option>
<option
value="12">12</option>
<option
value="13">13</option>
<option
value="14">14</option>
<option
value="15">15</option>
<option
value="16">16</option>
<option
value="17">17</option>
<option
value="18">18</option>
<option
value="19">19</option>
<option
value="20">20</option>
<option
value="21">21</option>
<option
value="22">22</option>
<option
value="23">23</option>
<option
value="24">24</option>
<option
value="25">25</option>
<option
value="26">26</option>
<option
value="27">27</option>
<option
value="28">28</option>
<option
value="29">29</option>
<option
value="30">30</option>
<option
value="31">31</option>
</select>

месяц
<select size="1" name="mes">
<option
value="1">январь</option>
<option
value="2">февраль</option>
<option
value="3">март</option>
<option
value="4">апрель</option>
<option
value="5">март</option>
<option
value="6">июнь</option>
<option
value="7">июль</option>
<option
value="8">август</option>
<option
value="9">сентябрь</option>
<option
value="10">октябрь</option>
<option
value="11">ноябрь</option>
<option
value="12">декабрь</option>
</select>

год
<select size="1" name="god">
<option
value="1989">1989</option>
<option
value="1990">1990</option>
<option
value="1991">1991</option>
<option
value="1992">1992</option>
<option
value="1993">1993</option>
<option
value="1994">1994</option>
<option
value="1995">1995</option>
<option
value="1996">1996</option>
<option
value="1997">1997</option>
<option
value="1998">1998</option>
<option
value="1999">1999</option>
</select>
</span></td>
</tr>
<tr>
<td
colspan="2" class="стиль3"><div align="center"><span class="стиль2">Дополнительная информация </span></div></td>
</tr>
<tr>
<td
class="стиль3"><span class="стиль2">Страна</span></td>
<td
class="стиль3"><span class="стиль2">
<input
type="text" name="strana" size="25">
</span></td>
</tr>
<tr>
<td
class="стиль3"><span class="стиль2">Город&</span></td>
<td
class="стиль3"><span class="стиль2">
<input
type="text" name="gorod" size="25">
</span></td>
</tr>
<tr>
<td
class="стиль3"><span class="стиль2">Пол&</span></td>
<td
class="стиль3"><span class="стиль2">
<select
size="1" name="pol">
<option
value="polm">Мужской
<option value="polw">Женский
</select>
</span></td>
</tr>
<tr>
<td
class="стиль3"><span class="стиль2">Ваша деятельность</span></td>
<td
class="стиль3"><span class="стиль2">
<input
type="text" name="deatel" size="25">
</span></td>
</tr>
<tr>
<td
height="33" class="стиль3"> </td>
<td
class="стиль3"> </td>
</tr>
<tr>
<td
height="33" class="стиль3"> </td>
<td
class="стиль3"> </td>
</tr>
<tr>
<td
height="33" class="стиль3"><input type="submit" value="Регистрация" name="otp"><input type="button" value="На главную" name="glav" OnClick=window.navigate('index.php')><br></td>
<td
class="стиль3"><input type="reset" value="Очистить"></td>
</tr>
</table>
<br>
</div>
<p
align="center"> Поля, отмеченные символом *, являются обязательными </p>
</div>
</center>
</font>
</body>
<html>



Вот обработчик rg.php - кнопка "Регистрация" :


<?php
mysql_connect("localhost","root","");
mysql_selectDB('portal');
mysql_query("SET NAMES 'utf8'");
$login=$_POST['login'];
$email=$_POST['email'];
$pas=$_POST['pas'];
$pas1=$_POST['pas1'];
$fio=$_POST['fio'];
$datarod="{$_POST['den']}-{$_POST['mes']}-{$_POST['god']}";
$strana=$_POST['strana'];
$gorod=$_POST['gorod'];
$pol=$_POST['pol'];
$deatel=$_POST['deatel'];
echo "<html><body>";
echo "<font style='font-size:20px;'>";
if(!preg_match("/^[a-zA-Z0-9]+$/",$login))
{echo "<html><body background='g/g4.png' style='background-repeat: no-repeat;
background-position:top;font-size:20px'><div align='center'><form>"
;
echo '<html><body><form><input type="button" OnClick="history.back()" value="Вернуться назад"><br>';
die('Логин должен состоять только из букв латинского алфавита и цифр');
echo "</form></div></body></html>";}
else
if
(strlen($login) < 3 or strlen($login) > 25)
{echo "<html><body background='g/g4.png' style='background-repeat: no-repeat;
background-position:top;font-size:20px'><div align='center'><form>"
;
echo '<html><body><form><input type="button" OnClick="history.back()" value="Вернуться назад"><br>';
die('Логин должен быть не меньше 3-х символов и не больше 25');
echo "</form></div></body></html>";}
else
if
(!preg_match('|([a-z0-9_\.\-]{1,20})@([a-z0-9\.\-]{1,20})\.([a-z]{2,4})|is',$email))
{echo "<html><body background='g/g4.png' style='background-repeat: no-repeat;
background-position:top;font-size:20px'><div align='center'><form>"
;
echo '<html><body><form><input type="button" OnClick="history.back()" value="Вернуться назад"><br>';
die('Введен неправильный e-mail');
echo "</form></div></body></html>";}
else
if
(!preg_match("/^[a-zA-Z0-9]+$/",$pas))
{echo "<html><body background='g/g4.png' style='background-repeat: no-repeat;
background-position:top;font-size:20px'><div align='center'><form>"
;
echo '<html><body><form><input type="button" OnClick="history.back()" value="Вернуться назад"><br>';
die('Пароль должен состоять только из букв латинского алфавита и цифр');
echo "</form></div></body></html>";}
else
if
($pas!==$pas1)
{echo "<html><body background='g/g4.png' style='background-repeat: no-repeat;
background-position:top;font-size:20px'><div align='center'><form>"
;
echo '<html><body><form><input type="button" OnClick="history.back()" value="Вернуться назад"><br>';
die('Пароли не совпадают');
echo "</form></div></body></html>";}
else
if
(!preg_match("/^[a-zA-Z ]+$/",$fio))
{echo "<html><body background='g/g4.png' style='background-repeat: no-repeat;
background-position:top;font-size:20px'><div align='center'><form>"
;
echo '<html><body><form><input type="button" OnClick="history.back()" value="Вернуться назад"><br>';
die('Ваше ФИО должно состоять только из букв латинского алфавита');
echo "</form></div></body></html>";}
else{
$iduser=mysql_query("select iduser from reg");
for ($i=0;$i<mysql_num_rows($iduser);$i++)
{
$row=mysql_fetch_array($iduser);
$idd=$row[0];
$idd=$idd+1;
}
$add=mysql_query("insert into reg set login='$login', email='$email', pas='$pas', pas1='$pas1', fio='$fio', datarod='$datarod', strana='$strana', gorod='$gorod', pol='$pol', deatel='$deatel'");
echo "<a href='index.php'><center>Перейти на главную страницу</center></a>";
echo "<html><body background='g/g4.png' style='background-repeat: no-repeat;
background-position:top;font-size:20px'><div align='center'><form>"
;
die('Регистрация прошла успешно');
echo "</form></div></body></html>";}
?>


Результат = 0! Пробовал кодировку и windows-1251, и utf8, и utf-8 как я привел сейчас......не пашет

Спустя 3 часа, 24 минуты, 51 секунда (18.03.2010 - 21:23) t-mac написал(а):
Буду очень признателен, если мне (да надеюсь, что и не только мне) помогут с этой очень нехорошей проблемой.....

Спустя 10 минут, 14 секунд (18.03.2010 - 21:33) DedMorozzz написал(а):
        mysql_query ("SET NAMES utf8");
mysql_query ("set character_set_client='utf8'");
mysql_query ("set character_set_results='utf8'");
mysql_query ("set collation_connection='utf8_general_ci'");
пользуйся

Спустя 23 часа, 16 минут, 34 секунды (19.03.2010 - 20:50) t-mac написал(а):
Дед мороз - спасибо, но не работает... sad.gif

Ваши строки прописал в php файле - добавил новую запись в БД. Результат = 36 UTK 444 444 gren@eff.rt Sidorov Р РѕСЃСЃРёСЏ Краснодар polm 0000-00-00 Школота

Спустя 16 минут, 31 секунда (19.03.2010 - 21:07) Игорь_Vasinsky написал(а):
Сдаёться что они уже так записались в твою базу.

Конвертируй таблицу средствами phpmyadmin -> операции на UTF8

но помоему поздно.

Спустя 16 минут, 58 секунд (19.03.2010 - 21:23) t-mac написал(а):
Нашел проблему......проблема была в том, что созданный txt файл был кодировки utf-8. Поменял на ANSI и все куллл..

Проблема закрыта.

Спасибо smile.gif

Спустя 31 минута, 46 секунд (19.03.2010 - 21:55) Игорь_Vasinsky написал(а):
прикольно. txt вдруг откуда невозмись взялся.

Спустя 10 часов, 48 минут, 7 секунд (20.03.2010 - 08:43) Reppa написал(а):
user posted image

А в самой таблице ты исправлял кодировку?

Ой, а проблему то решили. Страница вначале видимо из кеша загрузилась biggrin.gif

Спустя 4 дня, 10 часов, 36 минут, 2 секунды (24.03.2010 - 19:19) t-mac написал(а):
А причем тут .txt? Ведь файл .php можно открыть спокойно через блокнот.....


_____________
Омг.....php - это жесть...
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.