使用 file_get_contents() 和 ajax 获取 HTML:字符显示不正确

Getting HTML with file_get_contents() and ajax: chars are not displayed properly

我使用 proxy.php 和 main.js 从网站检索 html 数据。相关摘录如下:

proxy.php:

<?php

$url = addslashes($_GET['url']);
$output = file_get_contents($url);
echo $output;

ajax.js:

    $.ajax({
        url     : 'proxy.php?url=http://www.example.com',
        cache   : false,
        dataType: 'html'
    })
    .done(function (html) {
        // do something
    });

我的问题是德语中的“ä”、“ö”、“ü”等特殊字符显示不正确。例如,我得到的不是 "Nächte",而是 "Nächte"。有人知道这个问题的解决方案吗?

在 proxy.php 文件中指定 header 可能有助于确保使用适当的字符编码。例如

<?php
    header('Content-Type: text/html; charset=utf-8');
    $url = addslashes($_GET['url']);
    $output = file_get_contents($url);
    echo $output;
?>