Nueva pregunta

Pregunta:

Fecha: 28-08-2018 06:49:36 (En Español)

Problemas con ñ y acentos (Lectura de datos mal guardados)[Resuelta]

Estoy leyendo datos de un webservice de afip, en el cuál a veces me trae datos que están mal codificados, ya sean ñ o acentos (Los deben tener mal guardados en sus bases). El navegador me muestra bien por pantalla las cadenas, pero a la hora de guardarlas me las guarda tal como me la trae afip.
¿Hay alguna forma de convertirla? He estado probando varias cosas pero no logro que me convierta bien esas cadenas que ya vienen mal formadas.
He probado con
1-mysqli_set_charset($con,"utf8"); en la cadena de conexion
2-accept-charset="character_set" en el formulario
3-header("Content-Type: text/html;charset=utf-8"); en el archivo php
4- addslashes($cadenaTraidaDeAfip).
Etiquetas: Decodificado (Decoded) - PHP - Pregunta Votos: 0 - Respuestas: 7 - Vistas: 15 Compartir en: Google Facebook Twitter LinkedIn Link
 

Respuestas:

  • Fecha: 28-08-2018 10:03:37 Podrias mostrar como te llega la ñ? Probaste con utf8_decode y utf8_encode? Algunas de las funciones de la extension mbstring?   Votos: 0 - Link respuesta
     
  • Fecha: 29-08-2018 04:34:12 Mirando mediante un var_dump lo que me trae afip, me aparece asi 'ESPA&A 3684' . En pantalla asi 'ESPA&A' o a veces me lo muestra bien.
    Yo lo que me trae afip lo voy guardando en un arreglo, para despues devolverlo cuando llamen al metodo.
    En otro archivo php llamo al metodo y muestro por pantalla lo que me trajo ese arreglo.

    Probé con utf8_encode y utf8_decode para guardarlo. Por lo que vi, el decode es para pasar de codigo "ISO-8859-1" a utf8, en este caso la ñ me tendria que aparecer asi "ñ" para ser ISO-8859-1 y que realmente funcione el utf8_decode, pero por lo que creo, está mal guardado en afip, porque la conversion me la está haciendo de & a &.
    No tengo conocimiento de mbstring tendria que ponerme a ver como se usa.
    Los acentos los veo bien, uso mysqli_set_charset($con,"utf8"); en la conexion y lo muestra bien. Mi problema es con los datos que ya me vienen mal desde afip.
    Si alguien le pasa algo parecido o me recomienda algo, sería de gran ayuda. Gracias
      Votos: 0 - Link respuesta
     
  • Fecha: 29-08-2018 05:16:31 Te llega un ampersand desde la AFIP, & es la HTML entity para &. No hay conversion que valga ahi. Si cuando llega con error llega siempre con ese simbolo reemplazalo vos directamente con la Ñ   Votos: 0 - Link respuesta
     
  • Fecha: 03-09-2018 03:32:11 En algunos casos vi que me llegaba la ñ de esta forma "ESPAÑA 3684", la solucion que le encontré fue armar una funcion de javascript.
    function decode(str) {
       var elem = document.createElement('textarea');
       elem.innerHTML = str;
       return elem.value;
     }
     console.log(decode("'ESPAÑA 3684'"));

    la cual me devuelve la palabra decodificada. No se si funcionará para todo, pero al menos para este caso de las ñ me lo pudo resolver.
      Votos: 0 - Link respuesta
     
  • Fecha: 03-09-2018 09:02:22 Hola Manuel, has probado con html_entity_decode()? Pues parece que lo que te llega son entidades html.

    http://php.net/manual/en/function.html-entity-decode.php
      Votos: 0 - Link respuesta
     
  • Fecha: 08-09-2018 09:40:52 lo primero que debes hacer es poner este meta en tu html
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

    lo segundo poner en todas tus tablas y campos que requieras el cotejamiento UTF8_general_ci

    y por último en tu conexión especificar la codificación
    si usas pdo:
     $pdo = new PDO('mysql:host= servidor; dbname=bd', $usuario, $clave, array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES  \'UTF8\'')) 

    Si usas el normal :
    mysql_set_charset('utf8');
      Votos: 0 - Link respuesta
     
  • Fecha: 03-10-2018 21:35:12 Esas son entidades HTML, las guardaron así para evitar inyecciones de código, eso es lo correcto.

    Simplemente usa html_entity_decode como comentaba Fernando García y listo.
      Votos: 0 - Link respuesta
     
Para participar activamente de la comunidad primero debes autenticarte, ingresa al sistema.Iniciar Sesión
 
frjcbbae garagebible.com