xAJAX + MySQL + Кириллица. Нужна помощь

Статус
В этой теме нельзя размещать новые ответы.

troll90945

Читатель
Заблокирован
Регистрация
29 Фев 2008
Сообщения
109
Реакции
47
  • Автор темы
  • Заблокирован
  • #1
Весь день убил на поиски решений проблемы с кириллицей. Так ничего и не нашел
PHP код:
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. Ничего толкового так и не нашел.
 
PHP:
function unicod($str) {
    $conv=array();
    for($x=128;$x<=143;$x++) $conv[$x+112]=chr(209).chr($x);
    for($x=144;$x<=191;$x++) $conv[$x+48]=chr(208).chr($x);
    $conv[184]=chr(209).chr(145);
    $conv[168]=chr(208).chr(129);
    $conv[179]=chr(209).chr(150);
    $conv[178]=chr(208).chr(134);
    $conv[191]=chr(209).chr(151);
    $conv[175]=chr(208).chr(135);
    $conv[186]=chr(209).chr(148);
    $conv[170]=chr(208).chr(132);
    $conv[180]=chr(210).chr(145);
    $conv[165]=chr(210).chr(144);
    $conv[184]=chr(209).chr(145);
    $ar=str_split($str);
    foreach($ar as $b) if(isset($conv[ord($b)])) $nstr.=$conv[ord($b)]; else $nstr.=$b;
    return $nstr;
}

PHP:
echo unicod("<img src=/i/https.jpg border=0 align=absmiddle>&nbsp;Авторизация пройдена",'w','i');
 
зачем такие сложности?
скорее всего можно обойтись iconv.
 
Была проблемы, решил предварительным iconv конвертированием в аякс и из аякса.
 
а не проще использовать utf8?

PS довольно часто подобные проблемы решаются добавлением в скрипт строки
header("Content-Type: text/html; charset=нужная_кодировка");
ну это уже зависит от специфики скрипта
 
а не проще использовать utf8?

PS довольно часто подобные проблемы решаются добавлением в скрипт строки
header("Content-Type: text/html; charset=нужная_кодировка");
ну это уже зависит от специфики скрипта

Лично я напротив все с UTF8 перевожу в cp1251 так как что пока сподручнее
 
с чего такая нелюбовь к юникоду?

понимаю ещё в консоле, там есть тормоза с юникодом, но для web чем он не угодил?
 
с чего такая нелюбовь к юникоду?

понимаю ещё в консоле, там есть тормоза с юникодом, но для web чем он не угодил?

Ничем особым, просто все наработки старые на win1251 а перестраиваться (хоть это и не сложно) лень :)
 
  • Заблокирован
  • #9
Проблемы с кодировками...Попробуйте использовать при выводе соответствующие заголовки charset, а в запросах БД SET NAMES.
 
dumber, а знаешь почему? потому, что нужно использовать свои наработки и модификации MVC - тот же отдельный MESSAGE-сигмент.

Следал iconv('file.lang', $charset_x, $charset_y) и получил в другой кодировке :)
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху