【问题标题】:Utf8 opengraph titles get mangled despite setting charset to utf8?尽管将 charset 设置为 utf8,但 Utf8 opengraph 标题会被破坏?
【发布时间】:2014-11-02 21:35:02
【问题描述】:

我正在使用 php 库从网站 https://github.com/scottmac/opengraph/blob/master/OpenGraph.php 检索 opengraph 标签

<?php
header("Content-Type: text/html; charset=utf-8");
$url = 'http://www.youtube.com/watch?v=ogHIUNfu2vY';
require_once $_SERVER['DOCUMENT_ROOT'] . '/php/libs/opengraph/OpenGraph.php';

$graphObj = OpenGraph::fetch($url);

echo '<pre>';
print_r($graphObj);
echo '</pre>';

这个标题被错误地检索为

[title] => Hüsker Dü - I'll Never Forget You

应该是

[title] => Hüsker Dü - I'll Never Forget You

如何检索 utf-8 中的开放图形标签?

【问题讨论】:

  • 我敢打赌这与实际物理文件的编码方式有关。检查this post 以确定和更改文件编码
  • ...在紧要关头,众所周知,这些快速而肮脏的辅助函数可以挽救这一天:function.utf8-encodefunction.utf8-decode
  • 我不知道原始编码是什么,但我认为它是 utf-8。此外 - 第一个辅助函数仅将 ISO-8859-1 字符转换为 utf-8。我认为原始编码不是 ISO-8859-1。

标签: php utf-8 facebook-opengraph


【解决方案1】:
$graph = OpenGraph::fetch($url);
$body = current($graph);
$description = utf8_decode($body['description']);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-13
    • 2012-12-13
    • 2013-03-27
    • 2021-03-17
    • 2016-05-24
    • 2011-04-24
    相关资源
    最近更新 更多