Foros del Web » Programando para Internet » PHP »

consulta con adodb a db mySQL UTF-8 (no me muestra caracteres rusos)

Estas en el tema de consulta con adodb a db mySQL UTF-8 (no me muestra caracteres rusos) en el foro de PHP en Foros del Web. hola gente este es un problema ke a cualkeira le podria suceder les coemtno como viene la mano. resulta ke mi jefe contrato a un ...
  #1 (permalink)  
Antiguo 30/11/2006, 11:31
Avatar de aldo1982  
Fecha de Ingreso: noviembre-2004
Ubicación: Santa Fe (Argentina) Colon F.C
Mensajes: 1.362
Antigüedad: 19 años, 5 meses
Puntos: 6
consulta con adodb a db mySQL UTF-8 (no me muestra caracteres rusos)

hola gente este es un problema ke a cualkeira le podria suceder les coemtno como viene la mano.
resulta ke mi jefe contrato a un programador para hacer uan pagian para enseñar ingles la pagian anda perfecta pero el tema es que cuadno probamos de usar la pagina en Ruso muestra caracteres de esta forma "?????????????"
la pagian la hicieron con adodb ahora lo ke estoy ahciedno es usar el codigo mysql propio de PHP aca les pongo el ejemmplo de adodb y el de mysql

ADODB: (CON ETSE CODIGO MUESTRA TODOS ?????)
Código PHP:
$db = &ADONewConnection($DataBase);
        
$db->debug false;
        
$db->Connect($connHost$connUser$connPass$connDbName);
        
        
$strSQL 'SELECT L.Lan_ID, L.Lan_Image, L.Lan_Enable, L.Lan_Description ';
        
$strSQL .= ' FROM language L';
        
$strSQL .= ' WHERE L.Lan_ID = ' $Language;    
            
        
$rs $db->execute($strSQL);
        
        if (!
$rs->EOF) {
            
$Lan_Description $rs->fields['Lan_Description'];
            
$Lan_Image $rs->fields['Lan_Image'];
            
$Lan_Enabled $rs->fields['Lan_Enable'];
        }
        
$rs->close();
        
$db->close();
    } 
MYSQL php
Código PHP:
<?php header("Content-type: text/html; charset=utf-8");?>
<?php    
include('include/inicio.inc.php'); ?>

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Untitled Document</title>
</head>
<body>
покрывать

<?php
        
    
    $db 
= @mysql_connect($connHost$connUser$connPass);
    
mysql_select_db($connDbName$db);
    
mysql_query("SET NAMES utf8");

    
$sql "SELECT Rtr_Description FROM resourcetranslation WHERE Res_ID='TEXTTOPIC'";
    
$result mysql_query($sql);
    
    if (
$row mysql_fetch_array($result)) {
        echo 
"<div>".$row[Rtr_Description]."</div>";
    }
?>
</body>
</html>
mI PREGUNTA ES SI SE PEUDE AHCER MEDIANTE adodb PARA KE RECONOSCA LOS CARACTERES RUSOS TOMADOS COMO COSNULTA DE LA db CON utf-8.
SALU2 Y DESDE YA MUCHAS GRACIAS
__________________
LA MUERTE ESTÁ TAN SEGURA DE VENCER QUE NOS DA TODA UNA VIDA DE VENTAJA
  #2 (permalink)  
Antiguo 04/12/2006, 14:01
Avatar de aldo1982  
Fecha de Ingreso: noviembre-2004
Ubicación: Santa Fe (Argentina) Colon F.C
Mensajes: 1.362
Antigüedad: 19 años, 5 meses
Puntos: 6
nadie me puede dar una mano con eesto por favor ???
__________________
LA MUERTE ESTÁ TAN SEGURA DE VENCER QUE NOS DA TODA UNA VIDA DE VENTAJA
  #3 (permalink)  
Antiguo 04/12/2006, 17:33
 
Fecha de Ingreso: enero-2006
Ubicación: Buenos Aires, Argentina
Mensajes: 299
Antigüedad: 18 años, 3 meses
Puntos: 5
Buenas, si no entendí mal (no me queda muy claro tu mensaje), usando adodb tenés el problema, pero haciendo la consulta directamente con las funciones mysql_ la cosa va bien...

En ese caso, podrías probar con:

Código PHP:
db = &ADONewConnection($DataBase);
        
$db->debug false;
        
$db->Connect($connHost$connUser$connPass$connDbName);
        
//
        // Pasar a UTF-8
        
$db->execute("SET NAMES utf8");
        
//
        //
        
$strSQL 'SELECT L.Lan_ID, L.Lan_Image, L.Lan_Enable, L.Lan_Description ';
        
$strSQL .= ' FROM language L';
        
$strSQL .= ' WHERE L.Lan_ID = ' $Language;    
            
        
$rs $db->execute($strSQL);
        
        if (!
$rs->EOF) {
            
$Lan_Description $rs->fields['Lan_Description'];
            
$Lan_Image $rs->fields['Lan_Image'];
            
$Lan_Enabled $rs->fields['Lan_Enable'];
        }
        
$rs->close();
        
$db->close();
    } 
Una sola vez tuve que usar utf-8 y tuve problemas parecidos, pero por lo que recuerdo, haciendo la consulta "SET NAMES utf8" todo anduvo bien. Lo que hace esa instrucción es decirle a la db cuál es el encoding que vas a usar para los datos que mandás/recibís a través de la conexión que abriste, lo cual afecta a INSERTS, UPDATES, SELECTS, etc. Por eso es importante que sea la primera consulta que hagas al conectarte. (Este valor también lo podés cambiar desde la configuracion de mysql, agregando:
init-connect='SET NAMES utf8'
como explican acá http://dev.mysql.com/doc/refman/5.0/...onnection.html. Aunque esto va a afectar a cualquier script que se conecte a esa DB)

Suerte
Califa
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:43.