Meadow で UTF-8(BOM 付き)を使う

ファイルの文字コードに UTF-8 を使わないといけなくなったので、 Meadow で使えるようにいろいろ設定しました。
そのときのまとめです。


まずは使えるように

以下のサイトなどに書いてあるのを参考させてもらって .emacs.el に記述を追加します。
http://memo358.blog18.fc2.com/blog-entry-19.html



; (set-language-environment "Japanese")よりも前に
 (require 'un-define)
 (require 'jisx0213)



新しくファイルを開いたときの文字コードも UTF-8 に


C-x C-f で新しくファイルを開いた場合の文字コードも UTF-8 にしたいので、
以下の行も .emacs.el に追加します。



(set-default-coding-systems 'sjis-dos)
(setq-default buffer-file-coding-system 'utf-8-ws-dos)


Windows ではファイル名やターミナルなどで使う他のコマンドが Shift-JIS だったりするので、
デフォルトは Shift-JIS で、ファイルを開いた時の文字コードで UTF-8(BOM) を指定する必要があります。

指定時の記述は utf-8 が BOM なしで、 utf-8-ws が BOM 付きです。


BOM

UTF-8 には BOM 付きと BOM なしとあって、この BOM というのは Byte Order Mark の略でエンディアンの違いによるバイト順を判定するためのバイトコードで、ファイルの先頭に付加されます。
ただ、UTF-16 とかの場合だとバイト順は重要なのですが、 UTF-8 は 1 バイトなので、バイト順というよりも UTF-8 を使っているという標識の意味でつけられます。

しかし、 英数字だけであれば ASCII コードと同じで、英語圏であれば変更してもソフトの対応が要らないというのが UTF-8 の売りでもあるので BOM なしという状態もあります。

この BOM ありなしはどちらも利点、欠点があって混在しているのですが、ソフトによっては BOM ついてないとエラーになるのもあれば、BOM ついているとエラーになるのもあったりといろいろやっかいなことを引き起こします。
VisualStudio2010 でも BOM なし UTF-8 で日本語使ってたりするとビルド時にワーニングがでてくるので、 ソースは BOM 付き UTF-8 にする必要があります。


Meadow が BOM を消しちゃうための対策

私が使っている Meadow が古いだけかもしれませんが、 Meadow では UTF-8 の対応が不十分です。

というのも、 BOM 付き UTF-8 のファイルをオープンした時、正常にファイル内容は読み取れているのですが、文字コードは BOM なし UTF-8 と判定してしまいます。
なのでこのファイルを Meadow で編集して保存すると BOM が取れています。

C-x [Return] f でファイルの文字コードを utf-8-ws にしてから保存すると BOM 付きで保存できるのですが、いちいち指定するのめんどくさいです。

そこで苦肉の策として C-x C-s でファイルを保存する際に自動的に文字コードを変更してから保存するように .emacs.el に次のコードを記述するようにしました。



(global-set-key "\C-x\C-s" '(lambda ()
(interactive)
(set-buffer-file-coding-system 'utf-8-ws-dos)
(save-buffer)))
(global-set-key "\C-x\C-S" 'save-buffer)


ここでは通常の保存も残しておきたかったので C-x C-S に変更しています。

これだと終了前やコンパイル前の y, n で聞かれる保存の場合には対応できていないので注意して下さい。
defadvice とか使えば、完全に保存する前に BOM 付きに変更できると思うので、文字コードは BOM 付き UTF-8 しか使わないという人は試してみるとどうでしょうか。
その場合は次のようなコードを追加します(ただし、ちゃんと試してないです)



(defadvice save-buffer-as-utf-8-ws (before save-buffer
activate compile)
(set-buffer-file-coding-system 'utf-8-ws-dos))

関連記事
スポンサーサイト
Prev.    Category    Next 

Facebook コメント


コメント

コメントの投稿

Font & Icon
非公開コメント

このページをシェア
アクセスカウンター
アクセスランキング
[ジャンルランキング]
コンピュータ
43位
アクセスランキングを見る>>

[サブジャンルランキング]
プログラミング
3位
アクセスランキングを見る>>
カレンダー(アーカイブ)
プルダウン 降順 昇順 年別

05月 | 2017年06月 | 07月
- - - - 1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 -


はてな新着記事
はてな人気記事
ブロとも申請フォーム
プロフィール

yohshiy

Author:yohshiy
職業プログラマー。
仕事は主に C++ ですが、軽い言語マニアなので、色々使っています。

はてブ:yohshiy のブックマーク
Twitter:@yohshiy

サイト紹介
プログラミング好きのブログです。プログラミング関連の話題や公開ソフトの開発記などを雑多に書いてます。ただ、たまに英語やネット系の話になることも。