PDA

Просмотр полной версии : xAJAX + MySQL + Кириллица. Нужна помощь


NNNS
26.03.2008, 21:37
Весь день убил на поиски решений проблемы с кириллицей. Так ничего и не нашел require_once("config.php");
require_once("ajax/xajax_core/xajax.inc.php");
$xajax = new xajax();
$xajax->setCharEncoding("windows-1251");
$xajax->registerFunction("sendee");
$xajax->processRequest();

function sendee($aFormValues,$id) {
global $mysql_connect, $mysql_selectdb, $time;
$objResponse = new xajaxResponse();
$id = intval($id);
$mess = htmlspecialchars(strip_tags($aFormValues['messtext']));
$query = "INSERT INTO chat (user_id,message,type,time) VALUES ('$id','$mess','0','$time')";
$doQuery = mysql_query($query);
$query = "SELECT * FROM chat WHERE user_id LIKE '$id' ORDER BY id DESC LIMIT 0,20";
$doQuery = mysql_query($query);

while ($message = mysql_fetch_array($doQuery))
{
$str .= $message['message']."<br>";
}
$newContent = $str;
$objResponse->assign("chatblock","innerHTML", $newContent);
return $objResponse;
}
Вместо "Привет. Как успехи?" в базу пишется такая канитель "?????????µ?‚. ???°?? ???????µ?…???"

Может кто-нибудь сталкивался с этой проблемой. Помогите решить. Облазил форум XAJAX PROJECT. Ничего толкового так и не нашел.

gibson
26.03.2008, 22:25
Исис же выкладывал функцию перекодировщик, юзай поиск лучше

function encode($str, $type)
{
static $conv='';
if (!is_array ( $conv ))
{
$conv=array ();
for($x=128; $x <=143; $x++ )
{
$conv['utf'][] = chr(209).chr($x);
$conv['win'][] = chr($x+112);
}

for( $x=144; $x <=191; $x++ )
{
$conv['utf'][] = chr(208).chr($x);
$conv['win'][] = chr($x+48);
}

$conv['utf'][] = chr(208).chr(129);
$conv['win'][] = chr(168);
$conv['utf'][] = chr(209).chr(145);
$conv['win'][] = chr(184);
}
if( $type=='w' )
return str_replace ( $conv['utf'], $conv['win'], $str );
elseif( $type=='u' )
return str_replace ( $conv['win'], $conv['utf'], $str );
else
return $str;
}

Darkweider
27.03.2008, 02:27
еще есть функция iconv()
<?php
echo iconv("KOI8-U", "UTF-8", "Пора переходить на юникод.");
?>
вместо "KOI8-U", "UTF-8" свои нужные кодировки
например iconv('utf-8','cp1251',$name);
тоже траблы были))) Библейские символы конешно вскрывают)
хм... верхний вариант тоже понравилсо) Надо будет попробовать....

потом еще вот

header('Content-type: text/xml; charset=windows-1251');

Ну на этом пожалуй все что хотелось сказать по этому поводу)