0
0

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.

Eclipse:新規ファイルにBOM(UTF-8)をつける

Posted at

Eclipse で新規にファイルを作成すると Workspace に設定されたエンコードで保存されます。
文字エンコーディングを UTF-8 に設定した場合、新規にファイルを作成しても BOM は付きません。
そこで、BOM を付加するスクリプトを書きました。Ruby 版と Python 版があります。

AddBom.rb

#! /usr/bin/env ruby

path = ARGV[0]
puts "Add BOM to #{path}"
src = File.read(path)
bom = "\xEF\xBB\xBF"
if src.index(bom) == 0
	raise "BOM already exists"
end

File.open(path, "w") do |io|
	io << bom
	io << src
end

AddBom.py

# -*- coding:utf-8
import os
import sys

def main(path):
    f = open(path, mode='rb')
    data = f.read()
    f.close()

    utf8bom = "\xef\xbb\xbf"
    if len(data) >= 3:
        if data[0:3] == utf8bom:
            print "BOM already exists " + path
            return 0

    f = open(path, mode="wb")
    f.write(utf8bom)
    f.write(data)
    f.close()
    print "Add BOM to " + path
    return 0

if __name__ == '__main__':
    if len(sys.argv) < 2:
         print sys.argv
         print "addbom <path>"
         sys.exit(0)
    else:
        sys.exit(main(sys.argv[1]))

eclipse に外部ツールとして登録する

メニューバーから Run > External Tools > External Tools Configurations... を選択します。
新規作成し、AddBom.rb もしくは AddBom.py を登録します。

AddBom.rb の場合

項目 設定
Name AddBom
Location ruby.exe のパス
Arguments <AddBom.rbのパス> ${resource_loc}

AddBom.py の場合

項目 設定
Name AddBom
Location python.exe のパス
Arguments <AddBom.pyのパス> ${resource_loc}

使い方

新規ファイルを作成し、そのファイルを開いた状態で AddBom を実行します。
BOM がなければ追加され、すでに追加されていれば何もしません。
また、空ファイルでなくても問題なく動作します。

0
0
0

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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?