Ver Mensaje Individual
  #3 (permalink)  
Antiguo 25/12/2012, 06:08
jinno2323
 
Fecha de Ingreso: octubre-2011
Mensajes: 34
Antigüedad: 12 años, 7 meses
Puntos: 2
Respuesta: Problemas de codificación al extraer paginas chinas

Cita:
Iniciado por abimaelrc Ver Mensaje
Debes usar codificación unicode/utf8
He estado investigando toda la noche y no he conseguido nada. No entiendo lo que me quieres decir, si te refieres a esto no funciona:

Código PHP:
<?php

$codificacion 
"UTF-8";
header("Content-Type:text/html; charset=$codificacion");

$web "http://www.qq.com"// Por ejemplo.
$meta_tags get_meta_tags("$web");
$description_meta_tag $meta_tags['description'];
echo 
$description_meta_tag;

?>

De tanto que he investigado me he encontrado con esto pero no funciona.

1)
Código PHP:
 <?php
 define
("UTF_8"1);
 
define("ASCII"2);
 
define("ISO_8859_1"3);
 function 
codificacion($texto)
 {
     
$c 0;
     
$ascii true;
     for (
$i 0;$i<strlen($texto);$i++) {
         
$byte ord($texto[$i]);
         if (
$c>0) {
             if ((
$byte>>6) != 0x2) {
                 return 
ISO_8859_1;
             } else {
                 
$c--;
             }
         } elseif (
$byte&0x80) {
             
$ascii false;
             if ((
$byte>>5) == 0x6) {
                 
$c 1;
             } elseif ((
$byte>>4) == 0xE) {
                 
$c 2;
             } elseif ((
$byte>>3) == 0x14) {
                 
$c 3;
             } else {
                 return 
ISO_8859_1;
             }
         }
     }
     return (
$ascii) ? ASCII UTF_8;
 }

 function 
utf8_decode_seguro($texto)
 {
     return (
codificacion($texto)==ISO_8859_1) ? $texto utf8_decode($texto);
 }
 
?>

 <?php
 $a
="Ascii";
 
$b="ISO-8859-1: áéíóú";
 
$c=utf8_encode($b);
 echo 
utf8_decode_seguro($a)."\n";
 echo 
utf8_decode_seguro($b)."\n";
 echo 
utf8_decode_seguro($c)."\n";
 
?>
También, con respecto a mb_detect_encoding he encontrado que alguien ha reportado este bug, ¿puede ser que por eso no funcione?

https://bugs.php.net/bug.php?id=47018

Y hay muchos más si buscas en Google "Bug mb_detect_encoding".

¿Alguien sabe?