Foros del Web » Programando para Internet » PHP »

PHP OO Cambiar a código UTF-8 un sitio web

Estas en el tema de Cambiar a código UTF-8 un sitio web en el foro de PHP en Foros del Web. Hola que tal, Mi sitio web tiene un código de codificación: iso-8859-1, y quiero cambiarlo por: utf-8, ya que está lleno de caracteres raros en ...
  #1 (permalink)  
Antiguo 30/01/2013, 06:50
 
Fecha de Ingreso: enero-2009
Mensajes: 49
Antigüedad: 15 años, 3 meses
Puntos: 2
Cambiar a código UTF-8 un sitio web

Hola que tal,

Mi sitio web tiene un código de codificación: iso-8859-1, y quiero cambiarlo por: utf-8, ya que está lleno de caracteres raros en los acentos

He tratado de añadir esta linea de código en el index.php:

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> y no ha resultado.
También he colocado este código justo arriba del todo : <?php header("Content-type: text/html; charset=utf-8"); ?> y me sacaba un error que decia : " headers already sent ..."

gracias!!
  #2 (permalink)  
Antiguo 30/01/2013, 07:12
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 8 meses
Puntos: 1532
Respuesta: Cambiar a código UTF-8 un sitio web

bienvenido al foro, te invito a que consultes las políticas del foro

volviendo al tema, ten en cuenta que para implementar una codificación, son muchos los elementos que entran en juego, no creo necesario que añadas la cabecera (header) en php y el error que te dio te lo explico al final.

a ver, elementos a tener en cuenta para una correcta implementación de UTF8:

1 - Base de datos: de nada sirve implementar UTF8 si la base de datos no está en UTF8, y si no se puede cambiar (no es fácil y sobre todo cuando se necesita una codificación insensible a mayúsculas), lo ideal es tener una capa intermedia (como DBAL) que se encargue de convertir de UTF8 a la codificación de la DB y viceversa, dentro de las más rudimentarias es aplicar utf8_encode/utf8_decode, SQL SET NAMES en MySQL, y librerías como iconv o multibyte.

2 - Archivos, lo IDEAL es que todos los archivos estén codificados en UTF8 sin BOM, editores como NotePad++ te pueden ayudar a verificarlo y convertirlos, por defecto NetBeans usa está codificación pero no he investigado si la puede cambiar o reconvertir archivos, DreamWeaver similar.

3 - El META en el HTML: muy importante ya que le indica al navegador con qué se va a trabajar

4 - El WebServer: por defecto, WS como apache disponen de todas las codificaciones (charset) posibles, pero aveces en instalaciones manuales hay que especificarlas, aunque es un caso poco común, solo me pasó en mi primera instalación de apache desde 0


Con todo lo anterior se puede lograr una buena adaptación de UTF8, el error de php te aparece debido a que llamas al header cuando ya ha salido data o texto al stdout, por lo cual puede indicar que tengas texto antes, echo's o el simple DOCTYPE, header debe ser llamado antes, pero como te indique, no es realmente necesario establecer la codificación por header porque se supone que de eso de encarga el web server, se usaría para en casos que necesites exportar data en una codificación especifica.

espero haber aclarado tus dudas, cualquier otra responde por éste mismo hilo, saludos.
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #3 (permalink)  
Antiguo 30/01/2013, 07:13
 
Fecha de Ingreso: agosto-2011
Ubicación: Santo Domingo
Mensajes: 487
Antigüedad: 12 años, 8 meses
Puntos: 31
Respuesta: Cambiar a código UTF-8 un sitio web

intenta utilizar utf. sin -8
__________________
El talento se educa en la KARMA y el carácter en la tempestad.
Gabriel De Los Santos
  #4 (permalink)  
Antiguo 30/01/2013, 08:52
 
Fecha de Ingreso: enero-2009
Mensajes: 49
Antigüedad: 15 años, 3 meses
Puntos: 2
Respuesta: Cambiar a código UTF-8 un sitio web

hola de nuevo, tengo nuevas preguntas .

1- Cómo averiguo y luego cambio el sistema de codificación UTF8 en la base de datos. ¿Qué es dbal?
2- qué es bom. Que pestaña de notepad te dice la codificación existente
4- El server que manejo es compartido, no tengo acceso a apache

Gracias,
y disculpa la ignorancia
  #5 (permalink)  
Antiguo 30/01/2013, 11:32
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 8 meses
Puntos: 1532
Respuesta: Cambiar a código UTF-8 un sitio web

Cita:
Iniciado por miliky Ver Mensaje
hola de nuevo, tengo nuevas preguntas .

1- Cómo averiguo y luego cambio el sistema de codificación UTF8 en la base de datos. ¿Qué es dbal?
2- qué es bom. Que pestaña de notepad te dice la codificación existente
4- El server que manejo es compartido, no tengo acceso a apache

Gracias,
y disculpa la ignorancia
1 - ya le indiqué que NotePad++ le puede ayudar en eso, DBAL = Capa de abstracción de bases de datos, como DoctrineDBAL o similares

2 - Me parece que puede investigar en google que es el BOM, y Notepad NO puede ayudarle, sino Notepad++ en un menú aparecen las opciones de codificaciones, como "Conver to UTF8 without BOM"

3 - dudo mucho que sea problema del server, puede descartarlo o confirmar con ellos
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #6 (permalink)  
Antiguo 01/02/2013, 16:14
 
Fecha de Ingreso: enero-2009
Mensajes: 49
Antigüedad: 15 años, 3 meses
Puntos: 2
Respuesta: Cambiar a código UTF-8 un sitio web

Hola, en la base de datos dice en: MySQL connection collation Documentación, utf_8 unicode_ci

En el index.php he puesto desde notepad +++ codificar por UTF-8 sin BOM.
También he puesto el metatag entre
<HEAD> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> </HEAD> Sin embargo sigo viendo caracteres raros en los acentos. ¿Puedo decir por aquí la página para qué me ayudéis?

Gracias!
  #7 (permalink)  
Antiguo 01/02/2013, 16:31
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: Cambiar a código UTF-8 un sitio web

Prueba cambiar la conexión a MySQL para UTF-8:
Código SQL:
Ver original
  1. SET NAMES utf8

Saludos.
  #8 (permalink)  
Antiguo 02/02/2013, 09:36
 
Fecha de Ingreso: enero-2009
Mensajes: 49
Antigüedad: 15 años, 3 meses
Puntos: 2
Respuesta: Cambiar a código UTF-8 un sitio web

Hola de nuevo, he hecho esto: SET NAMES utf8 , pero sigo viendo caracteres raros en los acentos. ¿Alguna otra cosa que pueda hacer?

Gracias
  #9 (permalink)  
Antiguo 02/02/2013, 12:30
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: Cambiar a código UTF-8 un sitio web

Pues sí ya tienes todo en UTF8 es muy raro ya que con tener todo en UTF-8 y la conexión con SQL es más que suficiente.

Saludos.
  #10 (permalink)  
Antiguo 02/02/2013, 12:47
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Cambiar a código UTF-8 un sitio web

Cuando usar “SET NAMES”
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.

Etiquetas: html, utf-8
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:45.