PHP - Caracteres especiales

   
Vista:
sin imagen de perfil
Pos: 696
Val: 8
Ha disminuido su posición en 696 puestos en PHP (en relación al último mes)

Caracteres especiales

Publicado por Javier (49 intervenciones) el 11/01/2019 11:47:58
Buenos dias.
Llevo tiempo intentado solucionar este problema con un formulario y mysql.
En la pagina web tengo deifinido un formulario para altas.
A ell acceden desde chrome y otros navegadores.
Los datos los almaceno en una bbdd gestionada con mysql.
El problema viene cuando almaceno los datos en la bbdd que graba caracteres como muestro a continuacion:

JosÉ Antonio SuÁrez

En la pagina web tengo definido lo siguiente:

1
2
3
<meta content="text/html; charset=UTF-8" http-equiv="content-type">
<meta http-equiv="Pragma" content="no-cahe">
<meta http-equiv="expires" content="0">

en php tengo definido lo siguiente:

1
$espa= mysql_query("SET NAMES 'utf8'");

en mysql los campos afectados tienen utf8_spanish_ci


No sé donde esta el fallo y tampoco como evitarlo.

Un saludo,
Javier.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve
Pos: 1
Val: 3.034
Oro
Ha mantenido su posición en PHP (en relación al último mes)

Caracteres especiales

Publicado por xve (6844 intervenciones) el 11/01/2019 19:31:40
Hola Javier, según veo, los caracteres con acentos están correctamente, lo único que están en mayúsculas, no?

Haces algo especial en los insert?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Pos: 696
Val: 8
Ha disminuido su posición en 696 puestos en PHP (en relación al último mes)

Caracteres especiales

Publicado por Javier (49 intervenciones) el 11/01/2019 20:06:11
Gracias y feliz año xve.
No, no hago nada especial, eso es lo que me preocupa y el que aparecieran en mayusculas las palabras acentuadas mas todavia.
De todas formas buscando he observado algo que no tenia bien escrito en el head.
Lo he modifcado dejandolo asi:

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

y parece que funciona.
Ahora en el php cuando mando un correo de confiarmacion de datos aparece "otra vez con caracteres extraños'":

Nombre y Apell: Páez , Páez Lolin

esto es cuando recibo el correo de confirmacion.

Desde php creo una cadena de caracteres que incluye lo siguiente:

$cuerpo ='<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/><title> Inscripcion evento</title></head><body><h2>Formulario Inscripcion</h2>';

para enviar el emaill.

por lo que deberia enviar los caracteres de forma correcta pero no lo hace.
Vamos poco a poco mejorando pero no se solucina del todo.

:-(

Un saludo,
Javier
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de txema
Pos: 20
Val: 248
Ha aumentado 1 puesto en PHP (en relación al último mes)

Caracteres especiales

Publicado por txema (15 intervenciones) el 12/01/2019 01:44:34
Hola Javier.

Ese mismo problema lo he vivido, tanto si en la base de datos tenemos el cotejamiento con utf8_spanish_ci como utf8_general_ci

Al levantar los datos en HTML (<meta charset="utf-8">) generalmente corrige la grafía pero no en otros tipos de páginas como por ejemplo FPDF, en mi caso.
La solución pasó por corregir las variables afectadas mediante utf8_decode()

Esto es, sea al grabar los registros en la base de datos o al tomarlos desde ésta recogerlos como utf8_decode($variable).

Prueba y nos cuentas.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve
Pos: 1
Val: 3.034
Oro
Ha mantenido su posición en PHP (en relación al último mes)

Caracteres especiales

Publicado por xve (6844 intervenciones) el 12/01/2019 08:34:50
Hola Javier, puede ser que esos valores que te muestra erróneamente hayan sido guardados anteriormente a esta modificación que has realizado?

Por lo general, si todo esta en utf-8, no deberías tener ningún problema.
Ese problema aparece cuando en algún momento muestras unos valores en un formato diferente al que han sido guardado en base de datos.

Como indica Txema, si la pagina es html5, puedes utilizar:
1
<meta charset="utf-8">
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Pos: 696
Val: 8
Ha disminuido su posición en 696 puestos en PHP (en relación al último mes)

Caracteres especiales

Publicado por Javier (49 intervenciones) el 12/01/2019 09:46:36
Si, gracias por vuestra ayuda.
Con lo comentado aparentemente lo he solucionado.
He realizado varias pruebas y creo que ya va mejor.

Un saludo,
Javier.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Revisar política de publicidad