Al llenar un select con los registros de una tabla muestra �

  • Autor Autor jclaurian
  • Fecha de inicio Fecha de inicio
jclaurian

jclaurian

Delta
Verificación en dos pasos activada
Hola. No estoy seguro si esto valla aquí o en el foro de HTML, les cuento mi problema.

Tengo una tabla en un servidor SQL Server, la tabla tiene un campo llamado fracción tipo charvar(20), los registros son de este tipo:
59069903
12345678
87654321
01478515
15648462

Tengo un archivo php donde lo único que hace es jalar todos esos registros y mostrarlos en un select, funciona sin problema, mi código es este:
Insertar CODE, HTML o PHP:
function fracciones() {
$data = new Connection('DATA');
$sql = "SELECT fraccion FROM fracciones";
$res = $data->query($sql);
echo "<select>";
while( $fraccion = odbc_fetch_array($res) ) {
echo "<option>".$fraccion[fraccion]."</option>";		
}
echo "</select>";
}
//Imprimo el "formulario"
fracciones();

Como mencione, esto hace justo lo que quiero. Pero mi problema es a la hora de implementarlo dentro de un formulario en otro archivo. Cuando llamo a esta función, me imprime el select, pero al imprimir los registros, algunos se muestran de la siguiente manera:
59069903��������
59069903��������
59069903��������
59069903��������
12345678
87654321
01478515
15648462
...

Los que muestran esos caracteres raros son repetidos como en el ejemplo, no entiendo dónde puede estar el problema, si llamo a la función en otro archivo que no tenga nada los imprime bien, pero en mi formulario lo muestra así.

¿Qué podrá ser el problema?
 
¿Te sirvió? Únete a la conversación

Con tu cuenta gratis puedes responder, escribirle al autor por mensaje privado y comprar con Saldo retenido: el pago se libera cuando recibes lo acordado.

Toma 30 segundos · vuelves a este tema al terminar
Cambiaste lo codificacion en la base de datos, o en la página.
 
Ya lo pude solucionar, tenía un archivo de funciones incluido en mi código donde tenia la línea: header('Content-Type: text/html; charset=UTF-8');

La elimine y enseguida funcionó mi formulario.

Es raro, yo pensaba que esa línea era necesaria para poder imprimir acentos y ñ, pero fue al revés.
 
No creo que sea bueno el quitarlo, seria mejor usar utf8_encode al momento de imprimir cada salida.
 
Si seria mejor utilizar un encode a utf8 recuerdo que antes solica utilizar una clase para evitar problemas de encoding
No recuerdo si era esta, pero parece que es similar a la que solica utilizar, aunque antes trabaja con grandes cantidades de texto.


UTF8: Convert text between UTF-8 and other encodings - PHP Classes

saludos~
 
Utiliza utf8 desde la base de datos en la tabla y el campo asi no tienes que convertir nada en la salida, los datos ya vienen convertidos, tambien pon en tus paginas esta etiqueta <meta charset="utf-8">
 
El problema es que solo tengo permisos para hacer consultas a la bd, no tengo acceso al servidor como administrador.
 
Atrás
Arriba