No estás registrado (Registrarse)

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

    •  
      CommentAuthorcazatrucos
    • CommentTimeMay 8th 2015
     # 1
    Buenos días, ayer me llevé toda la tarde para poder sacar una codificación, (la rusa) entre otras.
    Resulta que en una web quiero guardar en una base de datos y luego mostrar varios idiomas, entre ellas la rusa o lenguaje "cirílica", pero sin modificar los meta, que lo tengo en UTF-8. si la cambio a la cirílica algo así como ROI8-R lo muestra bien pero ya no muestra la latín por ejemplo. Entonces lo tengo en meta UTF-8

    Luego al guardar caracteres cirílicos, se guardan codificados en UTF-8 me imagino en la base de datos.
    Para luego visualizar esos caracteres uso esta función en PHP:
    function unicode_russian($str) {
    for ($ii=0;$ii191) {
    $xchr=ord($xchr)+848;
    $xchr="&#" . $xchr . ";";
    }
    $encode=$encode . $xchr;
    }
    return $encode;
    }

    Pero por ejemplo no me funciona con la turca.
    Hay alguna manera mejor de procesar estos datos directamente en UTF-8?

    he utilizado funciones como:
    iconv("CP1251","UTF-8", $text); pero nada ... me doy por vencido ...
    gracias ...
    hellow !!!
    •  
      CommentAuthorcrakup
    • CommentTimeMay 8th 2015 editado
     # 2
    Ese problema puede ocurrir aunque tu base de datos utilice codificación utf-8 y tu meta charset esté definido como utf-8 si la conexión que establece mysql con tu servidor utiliza otra codificación.

    Revisa la codificación de la conexión entre tu servidor y mysql:

    $mysqli = new mysqli("localhost", "usuario", "contraseña", "base_de_datos");

    echo $mysqli->character_set_name();


    Si no es utf-8, modifica tu php.ini default_charset a utf-8 o utliza la función mysqli_set_charset de php:

    $mysqli = new mysqli("localhost", "usuario", "contraseña", "base_de_datos");

    $mysqli->set_charset("utf8");


    Si aún teniendo todo alineado en utf-8 (base de datos, conexión a base de datos, meta charset) todavía tienes errores, podría ser que estuvieras guardando caracteres en tu base de datos sin antes convertirlos a utf-8.
    •  
      CommentAuthorcazatrucos
    • CommentTimeMay 8th 2015
     # 3
    Gracias crakup :)
    ibas por buen camino. El problema que tenía era que los archivos que generaba con dreamweaver (al crearlos nuevos) no era en UTF-8, sino que en europeo occidental ...
    He modificado estos archivos en propiedades de archivo desde dreamweaver y ya funciona a la perfección :)

    Aunque ahora tengo otro problema y es que los datos ya guardados anteriormente en la base de datos no están codificados y estos salen mal...
    aunque ya los he corregido con un pequeño script para dedodificarlos a UTF-8
    bueno espero que le sirva de ayuda a otros user si les pasan algo parecido.
    Gracias :)hellow !!!