Foros del Web » Programando para Internet » PHP »

sale una interrogación en vez de una letra con tilde

Estas en el tema de sale una interrogación en vez de una letra con tilde en el foro de PHP en Foros del Web. hola, tengo una página en php, que es la siguiente: Código PHP: <?php header ( "Content-type: text/plain;charset=utf-8" ); require_once( 'conexion.php' ); function  query ( $sql ){ ...
  #1 (permalink)  
Antiguo 01/12/2011, 06:43
 
Fecha de Ingreso: octubre-2010
Ubicación: Madrid
Mensajes: 295
Antigüedad: 14 años, 2 meses
Puntos: 12
sale una interrogación en vez de una letra con tilde

hola, tengo una página en php, que es la siguiente:
Código PHP:
<?php
header
("Content-type: text/plain;charset=utf-8");
require_once(
'conexion.php');

function 
query($sql){
    
$res mysql_query($sql) or die (mysql_error());
    return 
$res;
}

$titulo $_POST['TITULO'];
$fecha date("Y-m-d");
$texto $_POST['TEXTO'];

if (!empty(
$titulo) && !empty($fecha) && !empty($texto)) {
    
mysql_select_db($database_conexion$conexion);
    
$sql "insert into FME(TITULO, FECHA_DE_PUBLICACION, TEXTO) values('$titulo','$fecha', '$texto')";
    
$res query($sql);
    if(
$res){
        echo (
"Noticia publicada con éxito");
    }else{
        echo 
"Error al grabar evento: ".mysql_error($res);
    }
}
$idnoticia mysql_insert_id();
include(
"mail.php");

?>
el caso es que en la mayoría de sitios he leido que usar UTF-8 es mejor, porque se escribe todo tal cual, sin utilizar "&acute" ni nada por el estilo. El problema es que si pongo en la cabecera (tal cual lo he hecho) utf-8, me sale una interrogación.

En la frase :"Noticia publicada con éxito", me sale "Noticia publicada con ?xito"

alguien me puede ayudar?
  #2 (permalink)  
Antiguo 01/12/2011, 06:58
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 16 años, 4 meses
Puntos: 1532
Respuesta: sale una interrogación en vez de una letra con tilde

debes poner UTF-8 en el META de la página HTML:

Código HTML:
Ver original
  1. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

además no hace falta ningún header, y en el que tienes le estás indicando al navegador que se trata de texto plano, cuando debe ser text/html
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #3 (permalink)  
Antiguo 01/12/2011, 09:09
 
Fecha de Ingreso: octubre-2010
Ubicación: Madrid
Mensajes: 295
Antigüedad: 14 años, 2 meses
Puntos: 12
Respuesta: sale una interrogación en vez de una letra con tilde

Cita:
Iniciado por maycolalvarez Ver Mensaje
debes poner UTF-8 en el META de la página HTML:
y si no quiero poner ningún elemento html en la página? es que esa página completa es el php que he copiado
  #4 (permalink)  
Antiguo 01/12/2011, 09:21
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 6 meses
Puntos: 2135
Respuesta: sale una interrogación en vez de una letra con tilde

En ese caso usa header():
Código PHP:
Ver original
  1. header('Content-type: text/html; charset=UTF-8');
  #5 (permalink)  
Antiguo 01/12/2011, 09:29
Avatar de charlyalegret  
Fecha de Ingreso: septiembre-2011
Ubicación: Barcelona
Mensajes: 705
Antigüedad: 13 años, 2 meses
Puntos: 140
Respuesta: sale una interrogación en vez de una letra con tilde

Toda página (o el código html que resulte de ella) debería contener las etiquetas
<html><head></head><body></body></html> (no tengo ni idea si en html 5 es igual o no).

Por otro lado comprueba que el editor de texto que uses no te la esté jugando con la codificación, es decir que que tenga UTF-8 sin boom, creo
  #6 (permalink)  
Antiguo 01/12/2011, 10:04
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 16 años, 4 meses
Puntos: 1532
Respuesta: sale una interrogación en vez de una letra con tilde

Cita:
Iniciado por charlyalegret Ver Mensaje
Toda página (o el código html que resulte de ella) debería contener las etiquetas
<html><head></head><body></body></html> (no tengo ni idea si en html 5 es igual o no).

Por otro lado comprueba que el editor de texto que uses no te la esté jugando con la codificación, es decir que que tenga UTF-8 sin boom, creo
no necesariamente, tal y como dice @GatorV, lo que necesitas es indicar desde el header HTTP el tipo text/html y la codificación indicada, el caso es que el usuario estaba pasándolo como texto plano: text/plain
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #7 (permalink)  
Antiguo 01/12/2011, 10:15
Avatar de jotaincubus  
Fecha de Ingreso: mayo-2005
Ubicación: Medellin - Colombia
Mensajes: 1.797
Antigüedad: 19 años, 7 meses
Puntos: 394
Respuesta: sale una interrogación en vez de una letra con tilde

Cita:
Iniciado por maycolalvarez Ver Mensaje
no necesariamente, tal y como dice @GatorV, lo que necesitas es indicar desde el header HTTP el tipo text/html y la codificación indicada, el caso es que el usuario estaba pasándolo como texto plano: text/plain
Pero para lo que el necesita solo basta con eso, porque por estándar internacional es "MUCHISIMO MUY" aconsejable tener este tipo de etiquetas y si quieres posicionarte en un buscador debes usar las metas porque sino olvídate de que los robots te van a indexar tu pagina.
__________________
Por que existe gente que no agradece después de que se le ha brindado tiempo y ayuda ???
  #8 (permalink)  
Antiguo 01/12/2011, 10:16
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 16 años, 4 meses
Puntos: 1532
Respuesta: sale una interrogación en vez de una letra con tilde

Cita:
Iniciado por jotaincubus Ver Mensaje
Pero para lo que el necesita solo basta con eso, porque por estándar internacional es "MUCHISIMO MUY" aconsejable tener este tipo de etiquetas y si quieres posicionarte en un buscador debes usar las metas porque sino olvídate de que los robots te van a indexar tu pagina.
y tienes toda la razón, solo estamos exponiendo las opciones, que no sean optimas para SEO es otra cosa

si este es el caso de un backend como supongo, el SEO no sirve para nada.
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #9 (permalink)  
Antiguo 01/12/2011, 10:37
Avatar de charlyalegret  
Fecha de Ingreso: septiembre-2011
Ubicación: Barcelona
Mensajes: 705
Antigüedad: 13 años, 2 meses
Puntos: 140
Respuesta: sale una interrogación en vez de una letra con tilde

Pues eso mismo quería decir, "debería" o es "aconsejable" o es "lo más correcto", que no es lo mismo que "tiene"... bueno... desde el punto de vista gramatical no lo sé, pero me refería a eso :P
  #10 (permalink)  
Antiguo 01/12/2011, 13:25
 
Fecha de Ingreso: noviembre-2011
Ubicación: Morelia, Mich, México
Mensajes: 95
Antigüedad: 13 años, 1 mes
Puntos: 18
Respuesta: sale una interrogación en vez de una letra con tilde

también puedes hacer
Código PHP:
Ver original
  1. echo utf8_decode("Noticia publicada con éxito");

saludos
__________________
Que de Cosas - Tienda En linea México

La Batalla Por tu cuerpo - Dietas|Rutinas|Entrenamientos|Salud
  #11 (permalink)  
Antiguo 01/12/2011, 13:32
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 16 años, 4 meses
Puntos: 1532
Respuesta: sale una interrogación en vez de una letra con tilde

Cita:
Iniciado por quedecosas Ver Mensaje
también puedes hacer
Código PHP:
Ver original
  1. echo utf8_decode("Noticia publicada con éxito");

saludos
eso sólo funciona si la codificación del cliente por defecto es ISO-8859-1, y puede dar problemas según la region donde se encuentre el usuario, lo mejor es definir la codificación o del archivo con header, o del html con el META
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #12 (permalink)  
Antiguo 02/12/2011, 07:19
 
Fecha de Ingreso: octubre-2010
Ubicación: Madrid
Mensajes: 295
Antigüedad: 14 años, 2 meses
Puntos: 12
Respuesta: sale una interrogación en vez de una letra con tilde

Gracias a todos por las respuestas. Probaré de nuevo con lo que me ha puesto GatorV. Lo del posicionamiento SEO en esa página me da igual. Todo el resto si tiene <html> con <head><body> etc. pero esta sólo sale como aviso al administrador, me da igual que los robots para SEO no la lean
  #13 (permalink)  
Antiguo 02/12/2011, 07:36
 
Fecha de Ingreso: octubre-2010
Ubicación: Madrid
Mensajes: 295
Antigüedad: 14 años, 2 meses
Puntos: 12
Respuesta: sale una interrogación en vez de una letra con tilde

Cita:
Iniciado por GatorV Ver Mensaje
En ese caso usa header():
Código PHP:
Ver original
  1. header('Content-type: text/html; charset=UTF-8');
seguía sin salirme al utilizar el header en php, repetía la interrogación, sin embargo he metido lenguaje html dentro de la página y poniendo el <meta> sí que sale

Etiquetas: letra, mysql, sql, tilde, vez
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 05:57.