elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Entrar al Canal Oficial Telegram de elhacker.net


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  Caracteres impresos mal ! (solved)
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: Caracteres impresos mal ! (solved)  (Leído 4,883 veces)
Diabliyo


Desconectado Desconectado

Mensajes: 1.441


shell# _


Ver Perfil WWW
Caracteres impresos mal ! (solved)
« en: 26 Octubre 2012, 16:46 pm »

Buenas...

Tengo un software persona (CMS) que pongo en cualquier sitio que monto, siempre me funciona sin problema alguno y cada vez que lo mejoro actualizo todos mis sitios...

En fin... ayer estuve montando una pagina personal y después de terminar de instalar mi CMS y montar mi template, hice la primer publicación y note que los acentos no se imprimían bien, se imprime: ó en vez de la letra acentuada "o".

Primero pense que fue por alguna mala actualizacion que hice a mi codigo.. asi que elimine todo, me serciore de subir al FTP los archivos correctos (actualizados), instale de nuevo y publique un post. Y el mismo error :S.

Esto ya me tiene todo confundido y estresado, necesito que alguien mas lo observe y tal vez me haga ver el error que tengo :S...

El sitio web es ESTE.


« Última modificación: 29 Octubre 2012, 23:02 pm por Diabliyo » En línea

Pablo Videla


Desconectado Desconectado

Mensajes: 2.274



Ver Perfil WWW
Re: Caracteres impresos mal !
« Respuesta #1 en: 26 Octubre 2012, 16:49 pm »

Tienes el charset utf-8 en tu web, cambialo a Charset iso-8859-1

y nos cuentas...

para mas informacion.

https://www.google.cl/search?q=charset+iso&oq=charset+is&sugexp=chrome,mod=0&sourceid=chrome&ie=UTF-8


Citar
<meta http-equiv="Content-Type" content= "text/html; charset=UTF-8"

cambialo por lo que te dije.


En línea

WarGhost
I love basket


Desconectado Desconectado

Mensajes: 1.070



Ver Perfil WWW
Re: Caracteres impresos mal !
« Respuesta #2 en: 26 Octubre 2012, 17:06 pm »

También revisa en que estén guardados los ficheros, puede ser que hicieras algun cambio y modificaste su formato.
En línea

Diabliyo


Desconectado Desconectado

Mensajes: 1.441


shell# _


Ver Perfil WWW
Re: Caracteres impresos mal !
« Respuesta #3 en: 27 Octubre 2012, 03:53 am »

Tienes el charset utf-8 en tu web, cambialo a Charset iso-8859-1

y nos cuentas...

para mas informacion.

https://www.google.cl/search?q=charset+iso&oq=charset+is&sugexp=chrome,mod=0&sourceid=chrome&ie=UTF-8


cambialo por lo que te dije.

Buenas....

Gracias por tus comentarios, ya lo cambie y sigue igual, si quieres entra al sitio que mencione anteriormente y veras que esta cambiado el charset...

En mis otros sitios siempre uso UTF-8 y jamas me habia pasado, solo en este nuevo server donde tengo el sitio :S.

Checa ESTA OTRA WEB y veras que los acentos aparecen y el charset es UTF-8 !..... OJO: es la web de un cliente con mi CMS corriendo.

Esto es lo que me confunde :S, ya que en otro servidor si corre bien, pero en el nuevo server no :S.

Ya me serciore que tanto el php.ini como el httpd.conf esten puestos a UTF-8 por Default..

Espero puedas darme algo de entendimiento con esto que te comente...

También revisa en que estén guardados los ficheros, puede ser que hicieras algun cambio y modificaste su formato.

La forma de guardar los datos, es asi:

Código
  1. <?php
  2. function proteger_cadena($m)
  3.     {
  4.     return htmlentities( $m, ENT_QUOTES);
  5.     }
  6.  
  7. /* condicionales y variables... */
  8. $tarma= array(
  9. "id"=>"'". $idauto. "'",
  10. "mensaje_post"=>"'". proteger_cadena($_POST["mensaje"]). "'",
  11. "titulo_post"=>"'". proteger_cadena($_POST["titulo"]). "'"
  12. );
  13.  
  14. insertar_bdd("TABLA_POSTINGS", $trama ); // guardo en la bdd
  15. ?>

Y la forma en como lo imprimo es:

Código
  1. <?php
  2. function desproteger_cadena($out)
  3.     {
  4.     $out= html_entity_decode( $out, ENT_QUOTES );
  5.  
  6.     if( strchr( $out, "<" ) )
  7.          $out= str_replace( "<", htmlentities("<", ENT_QUOTES), $out );
  8.     if( strchr( $out, ">" ) )
  9.          $out= str_replace( ">", htmlentities(">", ENT_QUOTES), $out );
  10.  
  11.     if( strchr( $out, "\n" ) )
  12.          $out= str_replace( "\n", "<br>", $out );
  13.     if( strchr( $out, "\t" ) )
  14.          $out= str_replace( "\t", "&nbsp;&nbsp;&nbsp;", $out );
  15.  
  16.     return utf8_encode( str_replace("|","/",$out) );
  17.     }
  18.  
  19. $cons= consulta_bdd( "TABLA", $argumentos ); // consulto
  20. $b= mysql_fetch_array($cons);
  21. // $b["mensaje_post"] -> es el mensaje guardado
  22.  
  23. echo 'Mensaje: <br>'. desproteger_cadena($b["mensaje_post"]);
  24. ?>



Otro dato...

Cheque MySQL y el charset en como guarda es: utf8_general_cl

Asumo que mi CMS no es el problema ya que el mismo codigo que tengo arriba, es el que tengo corriendo en mi localhost y los caracteres se imprimen bien, el charset es UTF-8, tambien UTF-8 Default en mi php y apache.

Saludos !
« Última modificación: 27 Octubre 2012, 04:32 am por Diabliyo » En línea

dimitrix


Desconectado Desconectado

Mensajes: 4.847



Ver Perfil WWW
Re: Caracteres impresos mal !
« Respuesta #4 en: 27 Octubre 2012, 05:25 am »

También revisa en que estén guardados los ficheros, puede ser que hicieras algun cambio y modificaste su formato.

Cierto, suele pasar mucho... bendito Notepad, el mejor programa para cambiar el formato cuando pasa esto.
En línea




Diabliyo


Desconectado Desconectado

Mensajes: 1.441


shell# _


Ver Perfil WWW
Re: Caracteres impresos mal !
« Respuesta #5 en: 28 Octubre 2012, 23:21 pm »

Cierto, suele pasar mucho... bendito Notepad, el mejor programa para cambiar el formato cuando pasa esto.

Tu respuesta no ayuda....
En línea

~ Yoya ~
Wiki

Desconectado Desconectado

Mensajes: 1.125



Ver Perfil
Re: Caracteres impresos mal !
« Respuesta #6 en: 29 Octubre 2012, 00:20 am »

Asegúrate de guardar los archivos como UTF-8.

Yo creo que se cual es tu problema, estas aplicando la función htmlentities y hay es donde radica el problema.
Cita de: php.net
Al igual que htmlspecialchars(), htmlentities() toma un tercer argumento opcional encoding el cual define la codificación usada en la conversión. Si se omite, el valor por defecto para este argumento es ISO-8859-1 en versiones de PHP anteriores a 5.4.0, y es UTF-8 desde PHP 5.4.0 en adelante. Aunque este argumento es técnicamente opcional, es altamente recomendable especificar el valor correcto para el código.

Info de tu servidor:
Código:
Server:Apache/2.2.3 (CentOS)
X-Powered-By:PHP/5.3.3

Osea, tus documentos están en UTF-8 pero estas utilizando datos con un juego de carácter diferente.

A si que agrégale a todos los archivos que utilizes htmlentities, el tercer argumento indicando la codificacion.

Saludos.
En línea

Mi madre me dijo que estoy destinado a ser pobre toda la vida.
Engineering is the art of balancing the benefits and drawbacks of any approach.
dimitrix


Desconectado Desconectado

Mensajes: 4.847



Ver Perfil WWW
Re: Caracteres impresos mal !
« Respuesta #7 en: 29 Octubre 2012, 00:48 am »

Citar
Tu respuesta no ayuda....

Eso será por que no tienes los conocimientos suficientes para usar el block de notas.

Siempre que me da ese problema lo arreglo con el block de nota.
En línea




Diabliyo


Desconectado Desconectado

Mensajes: 1.441


shell# _


Ver Perfil WWW
Re: Caracteres impresos mal !
« Respuesta #8 en: 29 Octubre 2012, 01:12 am »

Eso será por que no tienes los conocimientos suficientes para usar el block de notas.

Siempre que me da ese problema lo arreglo con el block de nota.

Jajajaja wow, entonces usando el "block de notas" te vuelves todo un crack :P...
:'( me haz echo el dia amigo :D jajajaja


Asegúrate de guardar los archivos como UTF-8.

Yo creo que se cual es tu problema, estas aplicando la función htmlentities y hay es donde radica el problema.
Info de tu servidor:
Código:
Server:Apache/2.2.3 (CentOS)
X-Powered-By:PHP/5.3.3

Osea, tus documentos están en UTF-8 pero estas utilizando datos con un juego de carácter diferente.

A si que agrégale a todos los archivos que utilizes htmlentities, el tercer argumento indicando la codificacion.

Saludos.

Fuiste mi salvador amigo....

Fijate que ciertamente, hace pocos días actualice la versión de mi PHP por razones personales y no sabia que la versión 5.3.3 entra en las versiones que "exigen" establecer la codificación dentro de la función "htmlentities"...

He agregado el argumento "UTF-8" en todos mis htmlentities y los html_decode....

Gracias men por tus comentarios... eres un crack ;)

Saludos !
En línea

dimitrix


Desconectado Desconectado

Mensajes: 4.847



Ver Perfil WWW
Re: Caracteres impresos mal !
« Respuesta #9 en: 29 Octubre 2012, 16:10 pm »

Para una solución más limpia y no tener que usar el utf8_decode cada dos por tres, es mejor dar el formato correcto el fichero, sino luego pasa lo que pasa...

Y como dije con el block de notas sobra, como me acaba de pasar, pongo un ejemplo de como arreglarlo sin tener que sar utf8_encode ni htmlentities, etc...



Y sí, además de ser un experto en el bloc de notas, también lo soy en el paint xD
En línea




Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines