Calificación:
  • 0 voto(s) - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5
Archivo acentos incorrectos en mi web
#1
los acentos en los post se ven incorrectamente aqui pueden ver un ejemplo

http://www.todoenunodescargas.com/Tema-P...media-2012

por que pasa esto? es por la codificacion me imagino pero que solucion tiene?
#2
Usas Mybb, así que primero te haré un par de preguntas xD.

1.- ¿Tienes PHP en las plantillas? Aveces cuando tienes php en las plantillas, y algo está mal colocado, te tira ese error de los acentos.

2.- ¿Has hecho alguna traducción de los lenguajes de ingles? De igual forma, puede deberse a que el archivo tenga Boom

WWW
#3
no tengo php en plantillas, no e echo ninguna traduccion.

el problema creo yo es el siguiente los usuarios en mi foro algunos utilizan autoposter y la informacion la envian en iso llegaba incompleta el post a la mitad por ello se le agrego a newtheread.php

Código PHP:
if(!ereg("todoenunodescargas.com.ar/"$_SERVER['HTTP_REFERER']))
{
$mybb->input['subject']=utf8_encode($mybb->input['subject']);
$mybb->input['message']=utf8_encode($mybb->input['message']);


dentro de

Código PHP:
if($mybb->input['action'] == "do_newthread" && $mybb->request_method == "post")


y son los post de esos usuarios los que aparecen con acentos incorrectos
#4
Entonces puede ser que los caracteres no estén codificados correctamente. Que estén llegando con Boom y por eso salen mal los acentos.
WWW
#5
Descargate el Notepad++ y abres los archivos le das a codificacion y a codificar a UTF8 sin BOM. Espero que te sirva.
#6
y cual es la forma de hacer que los datos llegen correctamente?
#7
Yo descarto que fuera problema de las plantillas. A pie de página puede verse "Contáctanos" y "Sindicación" correctamente tildeadas. Por tanto, la plantilla está bien y el bom es correcto.

El fallo más bien lo encuentro aquí:
Yamil escribió:if(!ereg("todoenunodescargas.com.ar/", $_SERVER['HTTP_REFERER']))
{
$mybb->input['subject']=utf8_encode($mybb->input['subject']);
$mybb->input['message']=utf8_encode($mybb->input['message']);
}
Probablemente, el contenido recibido ya esté en UTF8 por lo que se está "recodificando" a UTF8 dos veces.

Yo plantearía modificar ese par de líneas y dejarlas:
Código PHP:
$mybb->input['subject'] = $mybb->input['subject'];
$mybb->input['message'] = $mybb->input['message']; 
Y probar. Si no se soluciona, pero obtienes un cambio en los caracteres incorrectamente tildeados, opta por este segundo método:
Código PHP:
$mybb->input['subject']=utf8_decode($mybb->input['subject']);
$mybb->input['message']=utf8_decode($mybb->input['message']); 
Que valdría para el caso en el que el contenido llegara en UTF8 pero MyBB lo convirtiera antes de grabarlo en la BBDD a UTF8 de nuevo.

Pero lo más probable, es que la primera opción solucione tu problema.

Pero OJO!! Esta medida arreglará los nuevos contenidos. Mira a ver si funciona con las nuevas aportaciones. Las aportaciones anteriores seguirán apareciendo mal porque ya fueron grabadas en la BBDD pero una sentencia UPDATE en MySQL sobre tu base de datos para que busque y reemplace los caracteres erróneos por unos correctos solucionaría esos mensajes mal escritos. (a menos que quieras editar los mensajes uno a uno)

Prueba la opción 1 y nos cuentas.
[Imagen: firmabp.jpg][Imagen: mineenlineaentregadispo.jpg]
WWW
#8
se a solucionado perfecto Sonrisa me explicarias como seria lo de la base de datos?
#9
Yamil escribió:se a solucionado perfecto me explicarias como seria lo de la base de datos?
Entra en tu base de datos del foro y localiza la tabla donde se guardan los mensajes.

No es necesario que pongas el foro en mantenimiento porque esto se procesa en milésimas de segundo. Pero si quieres trabajar sobre seguro, haz un backup de la tabla, pon el foro en mantenimiento y procede.

Una vez en la tabla donde se guardan los mensajes, localiza el nombre de los campos donde se estuvo guardando los caracteres erróneos. (texto, asunto, etc...)

Ahora, pulsa sobre SQL y escribe:
Código:
UPDATE pre_tabla SET campo1 = REPLACE(campo1, 'ó', 'ó');
sustituyendo pre_tabla por el nombre de tu tabla y campo1 por el nombre del campo en donde deseas realizar la sustitución. Esta línea sustituirá el ó por una ó.

Y le das a ejecutar/continuar.

Ahora accede a http://www.todoenunodescargas.com/Tema-P...media-2012 y comprueba que la letra o esté bien tildeada.

Si funcionó, repite para el resto de caracteres especiales: á, é, í, ó, ú, ñ y sus equivalentes en mayúsculas. Además de las diéresis: ü....

Si quieres hacerlo todo de golpe, puedes hacerlo poniendo las instrucciones update una abajo de otra pero separadas por un punto y coma ;

Algo así:
Código:
UPDATE pre_tabla SET campo1 = REPLACE(campo1, 'ó', 'ó');
UPDATE pre_tabla SET campo1 = REPLACE(campo1, 'ó', 'ó');
UPDATE pre_tabla SET campo1 = REPLACE(campo1, 'ó', 'ó');
UPDATE pre_tabla SET campo1 = REPLACE(campo1, 'ó', 'ó');

Repite esto tantas veces sea necesario como campos desees convertir cambiando "campo1" por el campo que te interese.

Aquí tienes una listita con las conversiones:
Cita:á = á
é = Ã
í = Ã*
ó = ó
ú = ú

Á = Á
É = É
Í = Í
Ó = Ó
Ú = Ú

ñ = ñ
ç = ç

Ñ = Ñ
Ç = Ç

= Â
= Â
= â„¢
Ø = Ø
ª = ª

ä = ä
ë = ë
ï = ï
ö = ö
ü = ü

Ä = Ä
Ë = Ë
Ï = Ï
Ö = Ö
Ü = Ãœ

Ya nos contarás.
[Imagen: firmabp.jpg][Imagen: mineenlineaentregadispo.jpg]
WWW
#10
funciono perfectamente gracias Sonrisa


Posibles temas similares...
Tema Autor Respuestas Vistas Último mensaje
  Solucionado: Nombre de usuario ó contraseña incorrectos? Branty 6 684 04-05-2014, 04:00 PM
Último mensaje: papi
  Solucionado: Plantilla no reconoce acentos ni ñ jhonny 8 922 01-05-2013, 05:17 PM
Último mensaje: papi



Usuarios navegando en este tema: 1 invitado(s)