No estás registrado (Registrarse)

Vanilla 1.1.10 es un producto de Lussumo. Para más información: Documentación, Soporte.

    •  
      CommentAuthorbichi
    • CommentTimeJan 25th 2011
     # 1
    Hola a todos!

    Estoy intentando desarrollar un dominio y le voy a poner una tienda en Opencart, que es lo más fácil que he encontrado. Total, serán 4 o 5 productos y no necesito nada más.

    Uso la instalación por defecto y luego le pongo la traducción, todo ok, peeeero no me coge ni los acentos ni las ñ!!!

    En la cabecera me manda:
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

    <html xmlns="http://www.w3.org/1999/xhtml" dir="ltr" lang="es" xml:lang="es">


    Y suponía que con eso me debería de funcionar, pero no.

    Haciendo pruebas, resulta que si entro en los archivos .php y .tpl desde el Notepad++ y les doy la opción "Formato - Convertir en UTF-8 sin BOM" pues funciona correctamente. Lo he probado solo con la página que muestra la información del producto.

    Pero claro, ¿tendría que hacer esto para todos los archivos manualmente? Es un coñazo porque son muchos. ¿lo que estoy haciendo es lo correcto? ¿hay otra forma?

    Estoy un poco perdido :shamed:

    Gracias por vuestra ayuda :pray:
    •  
      CommentAuthorAntonio
    • CommentTimeJan 25th 2011 editado
     # 2
    Sip, haces lo correcto, los archivos deben estar en utf8 para que te los lea bien. Lo otro que puedes hacer es poner el tipo de de la cabecera como ISO-8859-1/ISO.8859-15 (depende en qué estén los archivos). Aquí puedes tener un problema con cómo se guardan los datos en la mysql, pero por probar. :)

    Por cierto, para linux hay un comando para pasar todos los archivos de un directorio a utf8 de una sola vez. Voy a buscar cual es y te lo posteo.
    •  
      CommentAuthorbichi
    • CommentTimeJan 25th 2011
     # 3
    Gracias Antonio! :cata2:
    •  
      CommentAuthorAntonio
    • CommentTimeJan 25th 2011
     # 4
    El programita de linux se llama recode, y puedes ejecutarlo si tienes linux en tu ordenador o en tu servidor por ssh para cambiar todos los archivos php así:

    find . -name *.php -exec recode -d ISO-8859-1..UTF-8 '{}' ;

    antes debe estar instalado el programa:

    sudo apt-get install recode

    Para hacerlo en un solo directorio sin los subdirectorios con esto te valdría

    convmv --notest -r -f iso-8859-1 -t utf-8 *

    No uso windows, así que no sé si se podrá hacer con alguno.

    Otra forma que se me ha ocurrido es que en el opencart, para no cambiar todo y seguir manteniendo los ficheros y la cabecera como los tienes es usar el buffer de salida y cambiarlo cuando se vaya a mostrar, una cosa así:

    Al principio del index.php

    <?php ob_start(); // Se guarda en el buffer en vez de enviar la salida ?>

    Y al final del index.php

    <?php utf8_encode( ob_get_clean() ); // Aquí se convierte a utf8 y se muestra toda la salida ?>

    * Esto, si no se llama siempre al index.php te puede dar algún problema, en caso contrario debería funcionar bien.

    Espero que te sirva. :bigsmile: