17
16

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Javascriptでのエンコーディング

Posted at

私は日頃 JavascriptUTF-8形式でファイルを保存しています。

最近 Shift-JISで書かれたテキストファイルを UTF-8で書かれたコードから読み込む必要が出てきたのですが、

**「Javascript encoding」**でぐぐると、

  • __空白文字を%20にエンコーディングする__ような話と、
  • 自分の意図と同じような __Shift-JISとUTF-8を変換する__話

がでてきて最初のうち間違えて前者を一生懸命やってしまったので、

なるべく同じようなアホを増やさないように覚書。 :p

サーバ上のファイルをエンコーディングを指定して読み込むには以下のようにして読み込みます。

*send()*をする前に *overrideMimeType()*でエンコーディングを指定しているところがミソです。

この方法でEUC-jpとかも行けるはず。

/**
 * サーバ上のファイルを取ってくる
 *
 * @param {String} path ファイルのパス
 *
 * @return {String} ファイルの内容
 */
function get_content_SJIS(path) {
 var ajax = new XMLHttpRequest();
 if (ajax != null) {
  ajax.open('GET', path, true);
  // my file's charset is Shift-JIS.
  ajax.overrideMimeType('text/plain; charset=Shift_JIS');  // <-- ココ
  ajax.send(null);

  ajax.onload = function(e) {
   utf8text = ajax.responseText;  // <-- UTF-8形式の文字列になっている
   ゴニョゴニョ(utf8text);
  };
 }
}
17
16
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
17
16

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?