Foros del Web » Programando para Internet » PHP »

problema eñes y tildes

Estas en el tema de problema eñes y tildes en el foro de PHP en Foros del Web. Bueno después de buscar durante varias horas diferentes soluciones... nada ha funcionado... estoy usando wamp he probado a poner los metas charset en html de ...
  #1 (permalink)  
Antiguo 25/06/2014, 03:20
 
Fecha de Ingreso: diciembre-2010
Mensajes: 166
Antigüedad: 13 años, 3 meses
Puntos: 0
problema eñes y tildes

Bueno después de buscar durante varias horas diferentes soluciones... nada ha funcionado... estoy usando wamp he probado a poner los metas charset en html de configurar en phpmyadmin diferentes tipos de charsets .

1a duda.. cuando abres phpmyadmin te sale una opcion de cotejamiento de conexion al servidor y cuando intento seleccionar utf-8_spanish o utf-8_general se me cambia a utf8mb4_xx... deberia tener el mismo charset ahi que en html y demás no?

Alguna solución que aporte algo de claridad.. ? porque en google este tema es un poco disaster según mi punto de vista....

Alguna página donde pueda encontrar información válida y actual? bueno gracias de antemano y perdonar si esto no va aqui pero no sabia donde ponerlo exactamente
  #2 (permalink)  
Antiguo 25/06/2014, 03:28
 
Fecha de Ingreso: octubre-2010
Ubicación: España
Mensajes: 1.007
Antigüedad: 13 años, 6 meses
Puntos: 123
Respuesta: problema eñes y tildes

Cita:
Iniciado por jhz1983 Ver Mensaje
Bueno después de buscar durante varias horas diferentes soluciones... nada ha funcionado... estoy usando wamp he probado a poner los metas charset en html de configurar en phpmyadmin diferentes tipos de charsets .

1a duda.. cuando abres phpmyadmin te sale una opcion de cotejamiento de conexion al servidor y cuando intento seleccionar utf-8_spanish o utf-8_general se me cambia a utf8mb4_xx... deberia tener el mismo charset ahi que en html y demás no?

Alguna solución que aporte algo de claridad.. ? porque en google este tema es un poco disaster según mi punto de vista....

Alguna página donde pueda encontrar información válida y actual? bueno gracias de antemano y perdonar si esto no va aqui pero no sabia donde ponerlo exactamente

El problema cual es? que no sete almacena bienen la bd o que al mostrarlo por pantalla no se ve bien?
  #3 (permalink)  
Antiguo 25/06/2014, 03:33
 
Fecha de Ingreso: diciembre-2010
Mensajes: 166
Antigüedad: 13 años, 3 meses
Puntos: 0
Respuesta: problema eñes y tildes

pues en la bd se ve bien.. pero al mostrarlo en pantalla con php aparecen los rombitos negros.
  #4 (permalink)  
Antiguo 25/06/2014, 03:47
 
Fecha de Ingreso: octubre-2010
Ubicación: España
Mensajes: 1.007
Antigüedad: 13 años, 6 meses
Puntos: 123
Respuesta: problema eñes y tildes

OK.
PHP provee varias soluciones a tu problema.

Para resolver tu problema puedes utilizar
htmlentities()
http://www.php.net/manual/es/function.htmlentities.php
o htmlspecialchars()
http://www.php.net/manual/es/functio...ecialchars.php


Respecto a la codificacion de caracteres
http://es.wikipedia.org/wiki/Codific..._de_caracteres

copio pego del manual de PHP

encoding

Al igual que htmlspecialchars(), htmlentities() toma un tercer argumento opcional, encoding, el cual define la codificación usada en la conversión. Desde PHP 5.6.0, el valor de default_charset se usa como el predeterminado. Desde PHP 5.4.0, UTF-8 es el valor predeterminado. PHP anterior a 5.4.0, utiliza ISO-8859-1 como el valor predeterminado. Aunque este argumento es técnicamente opcional, es altamente recomendable especificar el valor correcto para el código.


El tercer valor de las funciones que te he puesto mas arriba es la codificacion de caracteres, deberia de coincidir con la codificacion de tu bd de donde estraes el string que le pasas a la funcion, no obstante, en la mayoria de caracteres no importa la codificacion de la bd, y por lo tanto no suele ser necesario que coincida, por otro lado, existen caracteres que si no coinciden con la codificacion de uno y otro lugar no se representaran en pantalla correctamente.
  #5 (permalink)  
Antiguo 25/06/2014, 08:04
 
Fecha de Ingreso: diciembre-2010
Mensajes: 166
Antigüedad: 13 años, 3 meses
Puntos: 0
Respuesta: problema eñes y tildes

echo("<SECTION><H2>". htmlentities($res["titulo"],ENT_HTML5,"UTF-8")."</H2>
<IMG SRC=\"".$res["ImagenP"]."\"></SECTION>");

ahora no imprime las palabras que llevan tildes o eñes y demás... hay algún error?
  #6 (permalink)  
Antiguo 25/06/2014, 12:20
lolainas
Invitado
 
Mensajes: n/a
Puntos:
No se q método usas para conectarte a la bd, pero sea el que sea, debes especificar el charset también en la conexión, algún ejemplo:
mysql_query('set names "utf8"');
pdo->exec('set names "utf8"');

Deberías especificarlos antes de realizar cualquier operación y especificar el charset con el que estés trabajando en tu app.
  #7 (permalink)  
Antiguo 25/06/2014, 13:18
 
Fecha de Ingreso: octubre-2010
Ubicación: España
Mensajes: 1.007
Antigüedad: 13 años, 6 meses
Puntos: 123
Respuesta: problema eñes y tildes

tienes algun META en la cabecera de la pagina indicando la codificacion?

algo como:
Código HTML:
Ver original
  1. <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
  #8 (permalink)  
Antiguo 25/06/2014, 20:52
Avatar de Atomycko  
Fecha de Ingreso: diciembre-2005
Ubicación: Zapopan Jal.
Mensajes: 92
Antigüedad: 18 años, 3 meses
Puntos: 12
Respuesta: problema eñes y tildes

Yo me encontre con ese problema alguna vez, y tuve que realizar algunas modificaciones pues estaba un poco desordenado, tenia archivos con codificacion ANSI y otros en UTF-8 y no recuerdo la codofocacion en la BD, creo era utf8_general_ci, y usaba el juego de caracteres ISO-8859-1 en HTML, bueno, la cosa es que lo primero que hice fue codifocar todos los archivos a UTF-8 y usar el mismo juego de caracteres en HTML y, para estar seguro, tambien en PHP en los encabezados "Content-Type: [text/html|text/javascript|etc.]; charset=UTF-8'", con eso solucionaba que me aparecieran caracteres como "ñ" o el rombo, pero no al guardar o extraer los datos en la BD, para eso tuve que codificar los datos antes de guardar y despues de extraer con utf8_decode/encode por medio de una funcion:

Código PHP:
<?php
function utf8_($modo, &$datos$return false){
    
$codificar = function($datos$modo$codificar){
        if(!
is_array($datos)){
            
$datos $modo == 'encode' utf8_encode($datos) : utf8_decode($datos);
        }
        else{
            foreach(
$datos as $ind => $val){
                
$datos[$ind] = $codificar($val$modo$codificar);
            }
        }
        return 
$datos;
    };
    if(
$return){
        return 
$codificar($datos$modo$codificar);
    }
    
$datos $codificar($datos$modo$codificar);
}
?>
Asi solo queda hacer:
Código PHP:
<?pnp
$datos 
$_POST['datos'];

// manejar datos antes de guardarlos

utf8_('decode'$datos);

// guardar datos

?>
Yo en lo personal uso una sola variable para los campos de un formulario, asi solo tendria que paras una sola vez la funcion.

Ahora para extraer:
Código PHP:
<?php

// llamada sql

while($datos MANEJADOR){
    
utf8_('encode'$datos);

    
// hacer algo
}
?>
Bueno asi resolvi ese problema y hoy lo sigo usando. Espero esto te sea de utilidad.

Saludos!
__________________
PD: Los acentos fueron secuestrados.
  #9 (permalink)  
Antiguo 30/09/2014, 03:58
 
Fecha de Ingreso: septiembre-2005
Mensajes: 20
Antigüedad: 18 años, 7 meses
Puntos: 0
Respuesta: problema eñes y tildes

hola,

Lo primero de todo! hay que tener claro que una cosa son los tags encode "cadena de texto que añadimos en la cabecera"
tipo:
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
<?xml version="1.0" encoding="utf-8"?>
<meta charset="UTF-8" />

Y otra en que formato se creo el documento.

NO SIRVE DE NADA SI EL DOCUMENTO NO FUE "CREADO" EN UNO Y SE LE AÑADEN LOS TAGS EN OTRO.

El bloc de notas y otros programas "crean" cuando le decimos "nuevo" en formato ansi o otros segun se configure el programa, o los modifican cuando los modificamos (por ejemplo queremos eliminar o modificar una linea de un documento de forma rapida sin utilizar el programa adecuado) ... al guardarlo lo hace en el formato que tiene configurado por defecto (hay que fijarse) ... Este formato no tiene nada que ver con la codificacionque le damos luego con codigo, pero si no son iguales, se fastidia.

SI NO SE TIENE CLARO ESTO ... ! LUEGO VIENEN LAS PAJAS MENTALES DE CODIGO

Última edición por snomar; 30/09/2014 a las 04:02 Razón: AÑADIR

Etiquetas: eñes, html, tildes
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 16:37.