将Json输出转换为UTF8

时间:2018-09-27 18:59:51

标签: php json

当前,我正在尝试将JSON输出转换为UTF8,我正在使用charset=utf-8,但仍然无法正常工作。我不知道为什么会这样,因为我将charset设置为utf-8。另外,我的link输出包含\,例如:http:\/\/127.0.0.1\/freela\/music\/\/SERVER\/Titas - Epitafio.mp3。如何避免呢?

您可以在此处进行检查:http://ntcdn.stream/audio/abc.php

<?php
header('Content-type: text/html; charset=utf-8');
ini_set("display_errors", 1);


function getList() {
    $actual_link = "http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]/";
    $log_directory = "SERVER/";
    $main_array = [];

    $i = 1;
    foreach(glob($log_directory.'*.*') as $file) {
        $file = str_replace($log_directory, "", $file);
        $file = str_replace(".mp3", "", $file);

        if (strpos(utf8_encode($file), '-') !== false) {
            $string = explode('-', utf8_encode($file));
            $desc = $string[0];
        } else {
            $desc = "";
        }

        $main_array[] = array(
            'id'=>$i,
            'name'=>$file,
            'description'=>trim($desc),
            'link'=>$actual_link.$log_directory.utf8_encode($file).'.mp3',
        );
        $i++;
    }
    $out = array_values($main_array);
    echo(json_encode($out)); 
}
getList();

?>

希望您能理解我在这里所说的话。谢谢!

1 个答案:

答案 0 :(得分:2)

而不是json_encode($out),请尝试:

json_encode(out, JSON_UNESCAPED_UNICODE |  JSON_UNESCAPED_SLASHES)

请参阅:https://secure.php.net/json_encode