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
/* Devuelve 6 3 6 6 Si hago un $notas = str_replace("\r\n", "", $notas); devuelven 0 y lo inserta pero necesito los saltos de línea. Si en lugar de substituirlo por espacio en blanco lo substituyo por \n o por \r da error. Alguna ayuda? */
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
Si que funciona. Cuando la nota viene de dbase con saltos de línea es cuando NO funciona.