Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么HTML网站的内容是ISO-8859-1格式而不是UTF-8格式?_Javascript_Html_Meteor_Utf 8_Character Encoding - Fatal编程技术网

Javascript 为什么HTML网站的内容是ISO-8859-1格式而不是UTF-8格式?

Javascript 为什么HTML网站的内容是ISO-8859-1格式而不是UTF-8格式?,javascript,html,meteor,utf-8,character-encoding,Javascript,Html,Meteor,Utf 8,Character Encoding,我正在Meteor中创建一个web应用程序,从特定的internet页面中获取数据 问题很简单,当我提取网页内容时会发生什么。因此,我有内容HTML,但在ISO-8859-1格式,而不是在UTF-8作为这个网页的定义。如下面的代码所示 <!doctype html> <html> <head> <title>Judith Klavans - Citas de Google Académico</title>

我正在Meteor中创建一个web应用程序,从特定的internet页面中获取数据

问题很简单,当我提取网页内容时会发生什么。因此,我有内容HTML,但在ISO-8859-1格式,而不是在UTF-8作为这个网页的定义。如下面的代码所示

<!doctype html>
<html>
   <head>
      <title>Judith Klavans - Citas de Google Académico</title>
      <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
      <meta http-equiv="X-UA-Compatible" content="IE=Edge">
      <meta name="referrer" content="origin-when-cross-origin">
      <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=2">
      <style>@viewport{width:device-width;min-zoom:1;max-zoom:2;}</style>
      <meta name="format-detection" content="telephone=no">
      <link rel="shortcut icon" href="/favicon-png.ico">
      <link rel="canonical" href="http://scholar.google.com/citations?user=AxoaSbwAAAAJ&amp;hl=en">
正如您在代码中看到的,显示了终端中请求的页面内容,但现在它是ISO-8859-1格式,而不是第一个代码中看到的UTF-8格式。问题是特殊字符看不到HTML的内容,而是被符号替换�.

例如:谷歌Académico(utf-8)->谷歌Acad�mico(ISO-8859-1)


我希望所请求网页的HTML内容能够以原始格式
utf-8
获得,从而能够更正带有符号的特殊字符�.

您在请求时使用了什么?当UTF-8显示为ISO-8859-1时,您应该有两个“奇怪”字符,而不是只有一个�. 所以问题是你确定你的来源真的是UTF-8吗?我建议您使用notepad++验证您是否在Wondows上。
Router.route('/scraper/:id_investigador', function() {
  this.response.setHeader('Access-Control-Allow-Origin', '*');
  this.response.setHeader('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE');
  this.response.setHeader('Access-Control-Allow-Headers', 'Content-Type, X-Requested-With, x-request-metadata');
  this.response.setHeader("Content-Type", "text/html; charset=utf-8");
  this.response.setHeader('Access-Control-Allow-Credentials', true);

  var url = 'https://scholar.google.cl/citations?user=' + id_investigador;

  request(url, async function(error, response, html) {
    var $ = cheerio.load(html);
    console.log(html);
  })
}, { where: "server" });