Как распечатать китайский иероглиф в PHP при вызове API?

#php #api #character #vimeo #cjk

#php #API #символ #vimeo #cjk

Вопрос:

При вызове моего API он должен возвращать заголовок видео, описание, картинки и так далее. И иногда в моем видео есть китайские иероглифы. Итак, когда я распечатал массив JSON, китайский символ показывает что-то вроде этого: » u4e00 u5bb6 u4e0a u5e02 u4e0d u4e45 u7684 u5bb6 u5177 u4e1a».

Итак, мой вопрос в том, как я могу распечатать китайское слово при вызове API и распечатать?

   header('Content-Type: text/html; charset=utf-8');
  require ("vendor/autoload.php");
  use VimeoVimeo;
   $client = new Vimeo("{client_id}", "{client_secret}", "{access_token}");

   $video_id ="xxxxx";
   $response = $client->request("/videos/$video_id");
   //var_dump($response['body']);

   if($response['status'] === 200){
     header('Content-Type: application/json');
     echo json_encode($response['body']);
   }
  else {
      echo json_encode($response['body']['error']);
  }
  

Ответ №1:

используйте json_encode с некоторыми параметрами, чтобы предотвратить преобразование китайских символов.

   header('Content-Type: text/html; charset=utf-8');
  require ("vendor/autoload.php");
  use VimeoVimeo;
   $client = new Vimeo("{client_id}", "{client_secret}", "{access_token}");

   $video_id ="xxxxx";
   $response = $client->request("/videos/$video_id");
   //var_dump($response['body']);

   if($response['status'] === 200){
     header('Content-Type: application/json');
     echo json_encode($response['body'], JSON_UNESCAPED_UNICODE|JSON_UNESCAPED_SLASHES);
   }
  else {
      echo json_encode($response['body']['error']);
  }
  

Комментарии:

1. это так полезно!! Потому что я прочитал много разных ответов, и все равно это не работает. Stack overflow действительно нуждается в большем количестве таких людей, как вы, которые могут хорошо понять проблему программиста.

2. Спасибо, брат. мне действительно нравится вносить свой вклад в stack overflow.