[Chrome Extensions]Background Pageでマルチバイト文字を利用する場合の注意(Chrome 13未満)


Chrome Extensionで、下記のAPIを利用してコンテキストメニューの表示を行ったところ、文字化けが発生したので、調べてみました。

Context Menus – Google Chrome Extensions – Google Code

ちなみに今回利用したソースは下記にアップしています。

fukata/chrome-ja-test – GitHub

広告

前提として、全てUTF-8のファイルだとします。

chrome.i18n.getMessageやローカルストレージ、ajaxによりロードしたUTF-8の文字列は文字化けせずに正常に表示されます。文字化けするのは、直書きしたデータでした。少し検証してみたところ、Chrome 13未満の場合、background_pageに下記のようにmetaタグによる文字コード指定をきちんと行わないと文字化けするようです。

< !doctype html>
<html>
<head>
    <meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
    <script type="text/javascript" src="background.js"></script>
</head>
<body>
</body>
</html>

関連記事