Проблем с uncoding-а

DobriMcConnor

Registered
Здравейте, !

Имам проблем с енкодинг-а в чат кутия. Проблема ми е, че когато някой напише съощението или ника си на кирилица то излиза така: "?????". Сложил съм този код:
Код:
$chars="set character set utf8";mysql_query($chars);
, пробвах и с cp1251, но пак не става. Настроивам го от дб, но не.. Ако желаете да Ви дам някоя страница (кода) от Чат-а кажете :)
 
Пак същата работа :S

Ето кода на чата:
Код:
<html>
<head>
</head>
<body>
<link rel='stylesheet' href='style.css' type='text/css' media='all' />
<form action="" method="post">
Nick:
<br><input type="text" name="nick" />
<br />
Съобщение:
<br><input type="text" name="message">
<br />
<input type="submit" name="submit" value="Добави!" />
</form>
<?php
if (isset($_POST["submit"])) {
include('config.php');
if (!empty($_POST["nick"])) $nick = htmlspecialchars($_POST["nick"]);
else $errMsg = "Моля въведете линк!<br />";
if (!empty($_POST["message"])) $message = htmlspecialchars($_POST["message"]);
else $errMsg = "Моля въведете съобщение!<br />";
if (empty($errMsg)) {
mysql_query("SET CHARACTER UTF-8");
$insert = mysql_query("INSERT INTO chatbox(nick, message) VALUES('$nick', '$message')")or die(mysql_error());
echo 'Съобщението е добавено!';
} else echo $errMsg;
mysql_close();
}
?> 



<?php
include('config.php');
$query="SELECT id,nick,message FROM chatbox ORDER BY id DESC limit 10";
$result=mysql_query($query);
echo '<table width="150" height="1">';
while ($row=@mysql_fetch_row($result)) {
if (strlen($row['2'])>1000)
{$points='...';}
else
{$points='';}
$row['1'] = substr($row['1'],0,49);
$row['1']=substr($row['1'],0 , 49);
$date = date('d/m/Y');
echo"<tr><td><img src='../images/chatbox.gif' />$row[1]<br><font color='#cccccc'><b>$date</b></font>$points<br></b> $row[2] <hr></td></tr>";
}
echo "</table>";
?>
<br>
<a href="chat/allmessages.php">Всички съобщения</a>
</body>
</html>
 
Всичко в базата данни трябва да е на utf8_unicode_ci

в сайта също utf8

и тва го слагаш най-отдолу в config файла

mysql_query('SET CHARACTER SET UTF8');
 
DobriMcConnor каза:
Пак същата работа :S

Ето кода на чата:
Код:
<html>
<head>
</head>
<body>
<link rel='stylesheet' href='style.css' type='text/css' media='all' />
<form action="" method="post">
Nick:
<br><input type="text" name="nick" />
<br />
Съобщение:
<br><input type="text" name="message">
<br />
<input type="submit" name="submit" value="Добави!" />
</form>
<?php
if (isset($_POST["submit"])) {
include('config.php');
if (!empty($_POST["nick"])) $nick = htmlspecialchars($_POST["nick"]);
else $errMsg = "Моля въведете линк!<br />";
if (!empty($_POST["message"])) $message = htmlspecialchars($_POST["message"]);
else $errMsg = "Моля въведете съобщение!<br />";
if (empty($errMsg)) {
mysql_query("SET CHARACTER UTF-8");
$insert = mysql_query("INSERT INTO chatbox(nick, message) VALUES('$nick', '$message')")or die(mysql_error());
echo 'Съобщението е добавено!';
} else echo $errMsg;
mysql_close();
}
?> 



<?php
include('config.php');
$query="SELECT id,nick,message FROM chatbox ORDER BY id DESC limit 10";
$result=mysql_query($query);
echo '<table width="150" height="1">';
while ($row=@mysql_fetch_row($result)) {
if (strlen($row['2'])>1000)
{$points='...';}
else
{$points='';}
$row['1'] = substr($row['1'],0,49);
$row['1']=substr($row['1'],0 , 49);
$date = date('d/m/Y');
echo"<tr><td><img src='../images/chatbox.gif' />$row[1]<br><font color='#cccccc'><b>$date</b></font>$points<br></b> $row[2] <hr></td></tr>";
}
echo "</table>";
?>
<br>
<a href="chat/allmessages.php">Всички съобщения</a>
</body>
</html>


Къде ти е мета-тага?
<meta http-equiv="Content-Type" content="text/html;charset=utf-8"/>

Провери си всичко дали си го сложил където трябва...
mysql_query("set names utf8"); трябва да се зарежда, колкото се може по-нагоре в кода (преди повечето работи)...

В <html> тага не виждам нищо подобно като:
<html lang="en-US" xml:lang="en-US" xmlns="http://www.w3.org/1999/xhtml">

Добави си и !DOCTYPE ... и през Notepad++, отваряш си файловете и отгоре от Encoding, задаваш Encode in UTF8 without BOM и после на Convert (по-долу) - същото.
 
мета тага ще е така <meta http-equiv="content-type" content="text/html; charset=UTF-8" /> щот ако е без '-' между UTF и 8 се бъгва понякога ;)
 
IzKuFeLiQqQqQ каза:
мета тага ще е така <meta http-equiv="content-type" content="text/html; charset=UTF-8" /> щот ако е без '-' между UTF и 8 се бъгва понякога ;)

усетих, че съм объркал, просто от бързане :) :oops:
 

Back
Горе