node.js输出用问号替换的特殊符号

时间:2018-03-14 17:15:01

标签: php node.js encoding character-encoding

我正在使用名为notams.js的node.js API来获取与Aviation相关的通知列表。 PHP脚本使用以下代码调用API:

<?php
shell_exec("node notams.js");
?>

notams.js API如下所示:

var notams = require("notams");
notams(['LICZ'], { format: 'ICAO' }).then(results => {
console.log(JSON.stringify(results))
});

部分输出如下:

V0038 / 18 NOTAMN:[US DOD PROCEDURAL NOTAM]标准仪器离开(SID)修正雷达出口转弯28L;起飞RWY 28L:CLIMB HEADING276 。

问号代替度(°)符号。有什么方法可以防止这种情况发生在任何其他输出?我想要出现正确的符号。

P.S。 php / html页面有以下元参数:name =“viewport”content =“width = device-width,initial-scale = 1”charset =“UTF-8”

1 个答案:

答案 0 :(得分:0)

你在脚本中使用shell_exec命令,我肯定问题是控制台编码/ env的结果(例如:像LOCALE = C或其他非UTF-8编码)。

可能解决方案就是把这个

<section id="events-list">
  <div class="event">
    <div class="event-date">
      <p>MAR 30</p>
    </div>
    <div class="event-details">
      <p class="event-city">City, US</p>
      <p class="event-bus">Company HQ - Company Double Line</p>
      <a class="register" href="#">RSVP</a>
    </div>
  </div>
  <div class="event">
    <div class="event-date">
      <p>MAR 30</p>
    </div>
    <div class="event-details">
      <p class="event-city">City, US</p>
      <p class="event-bus">Company HQ</p>
      <a class="register" href="#">RSVP on 4/13</a>
    </div>
  </div>
  <div class="event">
    <div class="event-date">
      <p>MAR 30</p>
    </div>
    <div class="event-details">
      <p class="event-city">City, US</p>
      <p class="event-bus">Company HQ - Company Double Line</p>
      <a class="register" href="#">RSVP</a>
    </div>
  </div>
</section>

$locale = 'en_US.UTF-8'; setlocale(LC_ALL, $locale); putenv('LC_ALL='.$locale); 行之前。