[l-plug] Dudas sobre configurar servidor web en Linux u otro sistema tipo UNIX y mostrar caracteres especiales (ñ,tilde)

104 views
Skip to first unread message

Rodolfo Vargas

unread,
May 31, 2013, 4:18:42 AM5/31/13
to linux-plug
Hola lsita, disculpas por el título más largo, tengo unas dudas y
agradecería que alguien me pueda ayudar (muchas gracias de antemano)

Alcances previos:
Algunas veces he programado en php y he usado mysql como mi gestor de
base de datos en algún Linux por ejemplo Fedora y en ubuntu (mi
experiencia) con un simple editor de texto vi o vim, ya se imaginan
que todo lo hacia desde cero y pues me iba bien, no ponía:
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> en
head, PERO LOS LINUX lo leían bien que yo recuerde me mostraban todo
los caracteres, ñ, tilde, que yo recuerde, pero me dí cuenta que debía
agregar <meta http-equiv="Content-Type" content="text/html;
charset=UTF-8"> para html4 o <meta charset="UTF-8"> en htm5, en head,
eso me dí cuenta cuando subía a hosting gratuitos tipo 000webhost,
pero se solucionaba añadiendo lo que les digo.

Algunas veces en sistemas opertivos como FreeBSD tenía que modificar
en php.ini y poner default_charset="UTF-8" o el equivalente que no
recuerdo para los caracteres especiales y todo mostraba bien, tanto
las páginas html y las .php

Problema actual en Debian 7:

Ahora estoy configurando un servidor web en Debian 7 y tengo
problemas, las páginas me las muestra bien las .php, PERO LA info de
la base de datos me la esta leyendo con caracteres extraños, osea ya
se imaginan no con tilde no con ñ, he puesto en php.ini
default_charset="utf-8" y he puesto en las páginas .php en head lo que
les dije y nada, sigue leyendo con caracteres extraños desde la base
de datos.

Mi duda:

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" > o
con <meta charset="UTF-8"> es suficiente leer todo tipo de caracteres
desde cualquier servidor que aloja mi aplicación? lo digo porque en
000webhost solo puse eso en head y todo cambia me lee bien desde las
páginas y desde la base de datos.

Es necesario modificar en php.ini y poner default_charset="UTF-8" para
que me muestre caracteres especiales? lo digo porque en windows con
xamp hacia eso y se arreglaba y eso que no ponia en head nada, era
simple html, nada de meta; pero algunas veces en FreeBSD y otro
sistema tuve que tocar el php.ini.

Gracias por alguna respuesta.
--
Live free or die!
_______________________________________________
Lista de correo Linux-plug
Temática: Discusión general sobre Linux
Peruvian Linux User Group (http://www.linux.org.pe)

Participa suscribiéndote y escribiendo a: linux...@linux.org.pe
Para darte de alta, de baja o hacer ajustes a tu suscripción visita:
http://voip2.voip.net.pe/mailman/listinfo/linux-plug

IMPORTANTE: Reglas y recomendaciones
http://www.linux.org.pe/listas/reglas.php
http://www.linux.org.pe/listas/comportamiento.php
http://www.linux.org.pe/listas/recomendaciones.php

Alojamiento de listas cortesia de http://cipher.pe

Clever Flores

unread,
Jun 3, 2013, 6:04:39 PM6/3/13
to linux...@linux.org.pe
Verifica también el valor del charset en Apache

AddDefaultCharset UTF-8

Si todos los caraceteres están en utf, si no comentalo
--
Clever Flores
Perú Linux SAC
Tel:       640-5800  Anexo 104
Blog:     http://www.perulinux.pe/blog/clever

Yonsy Solis

unread,
Jun 4, 2013, 7:25:00 PM6/4/13
to linux...@linux.org.pe
Has verificado el charset que se esta usando en tu MySQL en ese servidor ?

checa en tu my.cnf si tienes esto:

default-character-set = utf8

y luego checa tu base de datos si la base de datos y las tablas estan
usando latin1 o utf-8 (show create table es tu amigo aca)

--
Yonsy Solis


2013/6/3 Clever Flores <clever...@gmail.com>:

Nicolas Valcárcel

unread,
Jun 8, 2013, 12:26:49 PM6/8/13
to Plug
Has revisado los LOCALE del sistema a ver si tienen UTF-8 compilado?

2013/6/4 Yonsy Solis <yonsy...@gmail.com>:
--
aka nxvl
Yo uso Software Libre, y tu?

Rodolfo Vargas

unread,
Jun 9, 2013, 4:58:52 AM6/9/13
to linux...@linux.org.pe
Hola,

NO sé qué pasa, tengo mysql con utf-8, asi lo leo desde phpmyadmin, el
otro día estuve con CentOS y que recuerde puse en php.ini
default_charset="utf-8" y creo que se solcuinonó, ahora estoy con
ubuntu 12.04 y asi con los scripts que tengan en head a meta con
charset="utf-8" (estoy con html5, osea decalro <!DOCTYPE html> y uso
ese meta que els digo) y nada me seguia mostrando en las paginas los
caracteres raros, puse en php.ini default_charset="UTF-8" reinicio el
servicio y todo se ve bien, con ñ y tildes, ya no comprendo mucho :(,
pero igual tocara ver detalles, no se si depende del php.ini o solo de
la spáginas donde debe ponerse a utf-8, saludos.

NOta: por defecto todo esta, no he tocado nada a excepción de php.ini,
todo lo demas esta por defecto, calro que mi sistema operativo esta en
español, tengo configurado tambien en mi región en php.ini, las
paginas php tienen:

<!DOCTYPE html>
<html lang="es">

<head>
<meta charset="UTF-8">
</head>

Asi en otro hosting en internet se ve bien con tods los carateres
especiales, deberia ser suficiente, ese servidor es gratuito con
soporte a php y mysql (000webhost) y no se toca nada de php.ini (ni
tengo acceso) pero se ve bien, pero cuando yo monto un servidor para
una intranet veo que teniendo los tag html para que em lean los
caracteres especiales no me los lee bien, tengo que modificar php.ini
comoels dije :(, es asi? como debe hacerse?

El 08/06/13, Nicolas Valcárcel <nvalc...@gmail.com> escribió:

Jesus M. Castagnetto

unread,
Jun 9, 2013, 12:35:25 PM6/9/13
to linux...@linux.org.pe
El uso de los charset y encoding apropiados es siempre algo que debe de considerarse con cuidado. Las computadoras y los programas hacen lo que les decimos que hagan (generalmente), no lo que queremos que hagan :-). El php.ini que viene en muchas distros por defecto no indica utf-8 sino el encoding (ya antiguo) ISO-8859-1, si mal no recuerdo.

Lo que si, cuando generes los contenidos, asegúrate que emplees utf-8 y no otro encoding. En Unix/Linux, puedes emplear iconv en línea de comando para convertir entre diferentes encodings, y en PHP utf8-encode() o las funciones en la extensión recode o inconv. En Python lo puedes hacer usando string.encode(encoding="UTF-8") o unicode strings.

Un par de artículos recomendados acerca del tema general de char encoding (en unicode):





2013/6/9 Rodolfo Vargas <edga...@gmail.com>
Reply all
Reply to author
Forward
0 new messages