GASでWEBページの文字コードを取るため以下のようなコードを書きました。
javascript
1 var res=UrlFetchApp.fetch(入力URL); 2 const headers = res.getHeaders(); 3 Logger.log(headers); 4 const contentType = headers['Content-Type'].replace(/\s+/g, ''); 5 //Logger.log(contentType); 6 const indexOfCharset = contentType.indexOf('charset='); 7 const indexOfCharset2 = contentType.indexOf('CHARSET='); 8 var code="" 9 if(indexOfCharset>=0) 10 code=contentType.substring(indexOfCharset + 8); 11 else if(indexOfCharset2>0) 12 code=contentType.substring(indexOfCharset2 + 8);
でこの出力された文字コードを見ていますがよく失敗している。
たとえば
http://boumurou.world.coocan.jp/island/
このページでやると
HEADERの値が
{Server=Apache, Last-Modified=Fri, 13 Jan 2017 08:13:39 GMT, Accept-Ranges=bytes, Date=Mon, 17 Aug 2020 07:27:59 GMT, Content-Length=7664, Content-Type=text/html, ETag="1df0-545f569485559", Connection=keep-alive}
となり、UTF-8がとれてないが、実際にページの内容をブラウザーで見ると
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
となっている。
なぜ取れないページがあるのだろうか?というのが質問です。
なお当然取れるページもあります。
回答1件
あなたの回答
tips
プレビュー