Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   PHP, PERL, MySQL, JavaScript (https://forum.antichat.xyz/forumdisplay.php?f=37)
-   -   xAJAX + MySQL + Кириллица. Нужна помощь (https://forum.antichat.xyz/showthread.php?t=65527)

NNNS 26.03.2008 21:37

xAJAX + MySQL + Кириллица. Нужна помощь
 
Весь день убил на поиски решений проблемы с кириллицей. Так ничего и не нашел
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. Ничего толкового так и не нашел.

gibson 26.03.2008 22:25

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

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');

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


Время: 20:24