Problemas con acentos en PHP

He estado desarrollando una aplicación con HTML5, PHP y MYSQL, lo que hago es buscar un código y me regresa un filtrado de datos pero tengo un problema, en ciertos campos resultantes del filtrado me sale errores de acentos.

He hecho lo siguiente:

1.- Al crear la base de datos, el cotejamiento es utf8_spanish_ci

2.- En el archivo HTML, en la cabecera coloque:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html lang="es-Es" xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

</head>

En este punto sustituí la etiqueta meta por esta otra:

<meta http-equiv="Content-Type: text/html; charset=ISO-8859-1">

Con esta etiqueta meta resuelvo el problema comentado pero en otros campos que llevan acentos se sustituyen por otros caracteres (arreglo algo pero descompongo otra)

3.- En el campo que en un inicio me da el error puse lo siguiente

<? echo utf8_decode($registro['campo']); ?>

¿Qué puedo hacer para solucionar esto?

Respuesta

Te recomiendo esta cabecera HTML. Base href especifica la ruta base para usar por todas las rutas relativas del documento:

<!DOCTYPE html><html lang="es"><head><meta charset="utf-8">
<base href="https://www.ejemplo.com/">
<meta name="viewport" content="width=device-width,height=device-height,initial-scale=1">
<meta name="keywords" content="keyword1,keyword2,keyword3">
<meta name="description" content="Descripción del contenido de la página.">
<meta property="og:image" content="theme/images/imagen-og-para-redes-sociales.png">
<link rel="shortcut icon" href="favicon.ico">
<link rel="stylesheet" href="theme/screen.css" media="screen,projection,tv">
<link rel="stylesheet" href="theme/print.css" media="print">
<title>
  Título
</title>
</head><body>

2 respuestas más de otros expertos

Respuesta

¿Por qué quieres cambiar a iso...? Con urf8 puedes ver los acentos sin problemas, asegurate de que te todo este en urf8, la cabecera del HTML, el propio fichero php tiene que estar codificado en utf8, muy importante eso, mira con el editor de textos. Y la base de datos tambien.

Respuesta

Los charset de html déjalos como utf8

En PHP, después de la conexión añade esto:

// conexión
$link = mysql_connect('localhost', 'user', 'password');
// (añade esto) Le decimos que use utf8 en todo este link
mysql_query("SET NAMES 'utf8'", $link);

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas