Php 在Windows中处理shell输出中的非ASCII字符

Php 在Windows中处理shell输出中的非ASCII字符,php,utf-8,Php,Utf 8,我编写了这个简短的代码来输出ping。 但是在我的输出中有UMLAUT,因为我在德国windows 7计算机上运行此命令,所以这些UMLAUT(ö,ä,ü)在输出中始终可见为? 因此,我尝试将区域设置设置为de_de.UTF-8,但这也没有帮助 <?php header('Content-type: text/plain; charset=utf-8'); $locale= 'de_DE.UTF-8'; setlocale (LC_ALL, $loc

我编写了这个简短的代码来输出ping。 但是在我的输出中有UMLAUT,因为我在德国windows 7计算机上运行此命令,所以这些UMLAUT(ö,ä,ü)在输出中始终可见为

因此,我尝试将区域设置设置为
de_de.UTF-8
,但这也没有帮助

<?php
    header('Content-type: text/plain; charset=utf-8');
    $locale=    'de_DE.UTF-8';
    setlocale   (LC_ALL,    $locale);
    putenv      ('LC_ALL='.$locale);

    $result = shell_exec('ping www.google.de');

    echo $result;
?>

我的输出中的代码段:

平威德酒店�hrt-f�r www.google.de[173.194.112.248]mit 32字节 日期:


你收到了什么数据?也许它需要被解码为UTF-8?请看我更新的问题。问题是你的shell实际上没有返回UTF-8编码的数据。问题是它返回什么编码,以及可能如何告诉它返回其他内容。我不知道如何在Windows中做到这一点,但祝你好运。为什么通过shell_exec的ping命令会输出utf8编码呢?