Caracteres en castellano

Última actualización hace 2 mes
dgrvedado
Equipo Colaboradores

dgrvedado Publicado hace 3 mes
Hola hace tiempo estoy teniendo dolores de cabeza con el locale spanish del PHP-Fusion. Todas las tildes, ñ, etc... salen como un rombo con un signo de ? dentro. La verdad no se como resolver el tema. Alguna ayuda. No puedo modificar Apache porque estoy encasillado en un Cpanel.
Talocha
Super Administrador

Equipo Colaboradores

Talocha Publicado hace 3 mes
Bases de datos UTF-8
PHP-Fusion está usando utf8_unicode_ci para sus codificaciones de base de datos como valor predeterminado de PHP-Fusion 9.0.

Exactitud de la clasificación
utf8_unicode_ci se basa en el estándar Unicode para ordenar y clasifica con precisión en una amplia gama de idiomas.
Utf8_general_ci se acerca a la clasificación Unicode correcta en muchos idiomas comunes, pero tiene una serie de limitaciones: en algunos idiomas, no se clasificará correctamente en absoluto.
En otros, sólo tendrá algunas peculiaridades.

Rendimiento
utf8_general_ci es más rápido en las comparaciones y la clasificación, ya que toma un montón de atajos relacionados con el rendimiento.
Utf8_unicode_ci utiliza un algoritmo de comparación mucho más complejo que apunta a la clasificación correcta de acuerdo a una amplia gama de lenguajes.
Esto hace más lento ordenar y comparar un gran número de campos.
Unicode define conjuntos complejos de reglas para la clasificación de los caracteres. Estas normas deben tener en cuenta las convenciones específicas del idioma; No todo el mundo ordena a sus personajes en lo que llamaríamos "orden alfabético".
En cuanto a los idiomas latinos (es decir, "europeos"), no hay mucha diferencia entre la clasificación Unicode y la ordenación simplificada de utf8_general_ci en MySQL, pero todavía hay algunas diferencias:
Por ejemplo, la clasificación Unicode clasifica "ß" como "ss" y "Œ" como "OE" como la gente que usa esos caracteres normalmente querría, mientras que utf8_general_ci los clasifica como un solo carácter (presumiblemente como "s" y "e" respectivamente).
En lenguas no latinas, como lenguas asiáticas o lenguajes con diferentes alfabetos, puede haber muchas más diferencias entre la clasificación Unicode y la clasificación simplificada de utf8_general_ci.
La idoneidad de utf8_general_ci dependerá en gran medida del idioma utilizado. Para algunos idiomas, será bastante inadecuado.
Algunos caracteres Unicode se definen como ignorables, lo que significa que no deben contar para el orden de clasificación y la comparación debe pasar al siguiente carácter. Utf8_unicode_ci maneja estos correctamente.

¿Qué debe usar?
Casi nunca hay ninguna razón para usar utf8_general_ci ya que hemos dejado atrás el punto donde la velocidad de la CPU es lo suficientemente baja como para que la diferencia de rendimiento sea importante. Su base de datos casi seguramente estará limitada por otros cuellos de botella que esto hoy en día. La diferencia en el rendimiento sólo va a ser mensurable en situaciones extremadamente especializadas, y si eso es usted, usted ya lo sabría. Si experimenta una clasificación lenta, en casi todos los casos será un problema con sus índices / plan de consulta. Cambiar su función de intercalación no debe ser alta en la lista de cosas para solucionar problemas.
Es más importante clasificar adecuadamente en el idioma que usen sus usuarios.
Incluso si sabe que su aplicación sólo admite el idioma inglés, puede que tenga que tratar con los nombres de las personas, que a menudo pueden contener caracteres utilizados en otros idiomas en los que es tan importante clasificar correctamente.

Cita

otra cuestión sería tener datos ya existentes de una copia de seguridad que se deberían convertir con algo de php script es posible ir modificando los datos de los caracteres que dan los problemas es lo que hice al actualizar de 7 a este sitio que esta en v9 y aun hay que actualizar otra vez qué será cuando se terminen los locales poco a poco en huecos voy revisandolos y preparandolos para editarlos en github.


a sin que hay que usar locales en utf8
Aspecto del código locales utf8 para v.7:
Código.

<meta http-equiv='Content-Type' content='text/html; charset=utf-8' />

Aspecto del código utf8 para v.9:
Código.

<meta charset='utf-8' />
Editado por Talocha el 31-07-2017 22:12
dgrvedado
Equipo Colaboradores

dgrvedado Publicado hace 2 mes
Bueno he cambiado todas las tablas y sus campos al utf8_unicode_ci... y nada siguen apareciendo un rombo con un signo de interrogación dentro en donde deberían haber tildes, eñes y caracteres castellanos... no es la solución...
Talocha
Super Administrador

Equipo Colaboradores

Talocha Publicado hace 2 mes
envíame el enlace del sitio vamos a actualizar por pasos
envíame copia de bd por ejemplo si se trata de noticias, foro etc. basta con seleccionar las tablas de contenido
_articles
_threads
_posts
_news
_downloads
son las mas usadas que contiene los caracteres a revisar
con eso ya te pogo que pasos realizar para el contenido en las tablas restantes
trata de hacer una copia desde admistracion >> SISTEMA >> Copia de Seguridad BD
en Seleccionar: marca por ejemplo _news y realiza copia para que pueda ver como salen los caracteres en la copia
Usted puede ver todos los temas de discusión en este foro.
Usted no puede iniciar un nuevo tema de discusión en este foro.
Usted no puede responder en este tema de discusión.
Usted no puede empezar en una encuesta en este foro.
Usted no puede subir archivos adjuntos en este foro.
Usted no puede descargar archivos adjuntos en este foro.
Usuarios que participaron en la discusión:Talocha, dgrvedado