#daiizメモ

Scrapboxに夢中

metaタグcharsetの指定を怠ったら痛い目にあった

ChromeTwittersearch APIを叩いていたところ、クエリが半角英数字のみの場合はうまく取得できていたが、日本語を混ぜた途端取得データがおかしくなってしまった。

おそらくエンコード周りでミスしたのだろうと思い少し調べてみたところ、予想通りだった。

TwitterAPI文字コードUTF-8でクエリを解釈する仕様なので、クライアントからリクエストを投げるときもUTF-8エンコードする必要がある。

JavaScriptエンコードするためには、window.encodeURIComponent("クエリ")などを使えば良いことは知っていたのだが、手元のChromeでのデフォルトの文字コードUTF-8ではなかったらしい。

文字コードを明示するためにHTMLの内に以下の宣言を入れてみると、あっさり解決した。

<meta charset="utf-8">

ちなみに chrome://settings-frame/fonts によれば、Chromeの標準エンコードは初期設定ではShift_JISに設定されていた。

f:id:daiiz:20141225213212p:plain