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

Discussion in 'PHP' started by NNNS, 26 Mar 2008.

  1. NNNS

    NNNS Elder - Старейшина

    Joined:
    26 May 2007
    Messages:
    44
    Likes Received:
    28
    Reputations:
    -5
    Весь день убил на поиски решений проблемы с кириллицей. Так ничего и не нашел
    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. Ничего толкового так и не нашел.
     
    #1 NNNS, 26 Mar 2008
    Last edited: 26 Mar 2008
  2. gibson

    gibson Elder - Старейшина

    Joined:
    24 Feb 2006
    Messages:
    391
    Likes Received:
    247
    Reputations:
    88
    Исис же выкладывал функцию перекодировщик, юзай поиск лучше
    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;
            }
     
    1 person likes this.
  3. Darkweider

    Darkweider Elder - Старейшина

    Joined:
    8 Feb 2007
    Messages:
    142
    Likes Received:
    13
    Reputations:
    0
    еще есть функция 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');

    Ну на этом пожалуй все что хотелось сказать по этому поводу)
     
    2 people like this.
Loading...
Similar Threads - xAJAX MySQL Кириллица
  1. GAiN
    Replies:
    3
    Views:
    7,687