【问题标题】:Can't figure out with character encoding in PHP无法弄清楚 PHP 中的字符编码
【发布时间】:2015-07-04 04:09:57
【问题描述】:

我整理了一些小工具来阅读 youtube 视频标签。 http://www.daviddresden.com/tagreader/

<?php
header("Content-Type: application/json");
error_reporting(E_ERROR | E_PARSE);
$_POST['fn']='https://www.youtube.com/watch?v=OgAt8Ehg0eo';
if(isset($_POST['fn']) && $_POST['fn'] != ''){
    $url = htmlentities($_POST['fn']);
    $page_content = file_get_contents('https://www.youtube.com/watch?v=OgAt8Ehg0eo');


    $dom_obj = new DOMDocument();
    if($dom_obj->loadHTML($page_content)){

        $dom_obj->loadHTML($page_content);
        $meta_val = '';

        foreach($dom_obj->getElementsByTagName('meta') as $meta) {

            if($meta->getAttribute('property')=='og:video:tag'){ 

                $meta_val = $meta_val.','.$meta->getAttribute('content');
            }
        }
        echo substr($meta_val,1);
    }
    else{
        echo "Invalid Url!";
    }
}
else{
    echo "Empty Url!";
}
?>

它适用于 ASCI 字符,但 UTF 字符显示不可读。 我找不到问题。

【问题讨论】:

    标签: php ajax youtube tags


    【解决方案1】:

    utf8_decode——

    将带有 ISO-8859-1 字符的字符串转换为 UTF-8 编码 单字节 ISO-8859-1


    使用utf8_decode输出:

    echo utf8_decode(substr($meta_val,1)) ;
    

    Content-Type 设置为utf-8

    header('Content-Type: text/html; charset=utf-8');
    

    完整代码:

    header('Content-Type: text/html; charset=utf-8');
    $_POST['fn']='https://www.youtube.com/watch?v=OgAt8Ehg0eo';
    if(isset($_POST['fn']) && $_POST['fn'] != ''){
        $url = htmlentities($_POST['fn']);
        $page_content = file_get_contents('https://www.youtube.com/watch?v=OgAt8Ehg0eo');
    
    
        $dom_obj = new DOMDocument();
        if($dom_obj->loadHTML($page_content)){
    
            $dom_obj->loadHTML($page_content);
            $meta_val = '';
    
            foreach($dom_obj->getElementsByTagName('meta') as $meta) {
    
                if($meta->getAttribute('property')=='og:video:tag'){ 
    
                    $meta_val = $meta_val.','.$meta->getAttribute('content');
                }
            }
            echo utf8_decode(substr($meta_val,1)) ;
        }
        else{
            echo "Invalid Url!";
        }
    }
    else{
        echo "Empty Url!";
    }
    

    【讨论】:

      猜你喜欢
      • 2013-03-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-26
      • 2016-03-12
      • 1970-01-01
      • 2016-04-03
      • 1970-01-01
      相关资源
      最近更新 更多