2011-12-23 22 views
7

Ésta es una pregunta de seguimiento de éste: Algorithm to dynamically merge arrayscaracteres sin escape en la célula Detener procesamiento Fila PHPExcel

hay caracteres sin escape en algunas de las celdas de la hoja de cálculo. Intento escapar de ellos con addslashes() pero phpexcel parece ignorar esto y detener el procesamiento del resto de las filas. Obtengo este error en los registros:

PHP Warning: Unexpected character in input: '\' (ASCII=92) state=1 

He revisado la API; No he visto ningún método de formato de texto que pueda usar. (Por favor corrígeme si estoy equivocado)

Su ayuda es apreciada.

+1

addslashes no escapa a los períodos, php.net me dice .... o_O. – Mina

+2

PHPExcel no se preocupa por las barras, son solo caracteres en una cadena ... la única condición es usar UTF-8. Mientras sigas las reglas propias de PHP con cadenas, no deberías tener ningún problema con la biblioteca, así que claramente esto es otra cosa. ¿Puede darnos un ejemplo de qué cadenas le están causando problemas y cómo las está leyendo desde PHPExcel y almacenándolas en la base de datos? –

Respuesta

2

Desde el Documenation PHP:

"Es necesario el uso de codificación UTF-8 para todos los textos en PHPExcel Si la secuencia de comandos utiliza una codificación diferente, entonces es posible convertir los textos con la función iconv() de PHP.. "

Escapar de los caracteres no hará nada, ya que los caracteres que no son caracteres UTF8 válidos, permanecerán inválidos.

Aunque puede hacer la conversión de conjunto de caracteres cuando pasa los datos a PHPExcel, en lugar de eso recomiendo encarecidamente cambiar todo su proyecto a UTF8, ya que tratar con conjuntos de caracteres múltiples en un proyecto no es un buen problema.

Cuestiones relacionadas