Foros del Web » Programando para Internet » PHP »

Problema codificación de caracteres. Como ver TODOS los caracteres?

Estas en el tema de Problema codificación de caracteres. Como ver TODOS los caracteres? en el foro de PHP en Foros del Web. Buenas a todos, estoy trabajando con MySQL, Dbase y demás. Mi web está en utf8. DBase parece ser que traba con el formato IBM-860 o ...
  #1 (permalink)  
Antiguo 14/06/2013, 03:02
 
Fecha de Ingreso: abril-2012
Mensajes: 590
Antigüedad: 12 años
Puntos: 58
Problema codificación de caracteres. Como ver TODOS los caracteres?

Buenas a todos,

estoy trabajando con MySQL, Dbase y demás. Mi web está en utf8. DBase parece ser que traba con el formato IBM-860 o algo así. Como me conecto por odbc las consultas me vienen en ASCII, así que las codifico en UTF-8 con utf8_encode.

Luego eso se carga en un formulario, hacen algunas modificaciones, las envían y se guardan en dbase otra vez, para ello decodifico el utf8 con utf8_decode, de lo contrario los acentos y otros caracteres salen con interrogaciones.

Estoy usando Code Igniter como dato extra.

A veces me daba error al insertar hasta que tras mucho investigar descubrí que el \n le genera algún problema a dbase así que tuve que substituir todos los \n y \n\r por \r a secas.

A mayores aún hay datos que me siguen dando error al insertar. El caso es que me aparece la consulta con el error y un caracter con el símbolo <?> y yo ahí no veo ningún caracter (antes de insertar). Presupongo que es otro tipo de salto de línea, espacio en blanco o cualquier cosa. Como puedo ver el código que pertenece a ese caracter? o como puedo saber qué hay ahí?

PD: me parece que el problema siguen siendo los saltos de línea. Si retiro todos si que funciona. Debe de ser que si hago el utf8_decode de un salto de línea se "estropean". No se como arreglar esto.

Un saludo.

Como puedo hacer para ver los saltos de línea de un string?

Código PHP:
Ver original
  1. $notas = utf8_decode($this->input->post('notas'));
  2. echo substr_count($notas, "\r\n");
  3. echo substr_count($notas, "\n\r");
  4. echo substr_count($notas, "\n");
  5. echo substr_count($notas, "\r");
  6. /*
  7. Devuelve
  8. 6
  9. 3
  10. 6
  11. 6
  12.  
  13. Si hago un $notas = str_replace("\r\n", "", $notas); devuelven 0 y lo inserta pero necesito los saltos de línea.
  14. Si en lugar de substituirlo por espacio en blanco lo substituyo por \n o por \r da error. Alguna ayuda?
  15.  
  16. */

Lo curioso es que si la línea es generada desde el formulario (no cuando viene de dbase) y hago esto:
Código PHP:
Ver original
  1. $notas = str_replace("\r\n", "\r", $notas);

Si que funciona. Cuando la nota viene de dbase con saltos de línea es cuando NO funciona.

Última edición por alyciashape; 14/06/2013 a las 03:42
  #2 (permalink)  
Antiguo 16/06/2013, 03:56
Avatar de repara2  
Fecha de Ingreso: septiembre-2010
Ubicación: München
Mensajes: 2.445
Antigüedad: 13 años, 7 meses
Puntos: 331
Respuesta: Problema codificación de caracteres. Como ver TODOS los caracteres?

No se trata de ver "todos" los caracteres sino de utilizar la codificación correcta, pásate por aquí: http://www.w3schools.com/tags/ref_charactersets.asp
Salu2
__________________
Fere libenter homines, id quod volunt, credunt.

Etiquetas: caracteres, formulario, mysql
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 14:49.