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?
 
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