エンコードの種類を変更して保存しても再No.21965
geyeri さん 06/10/16 15:04
 
はじめまして。

エンコードの種類を変更して保存しても、再び開くとエンコードは変更前のままです。

例えば、Shift-JISのファイルをUTF-8で保存すると、そのファイルは確かにエンコー
ドの変更が反映されていてUTF-8となっています。

ところが、このファイルをいったん閉じて再び開くとエンコードはShift-JISになっ
ています。

エンコードを変更して保存したのだから次回開いたときもエンコードが変更されてい
るのが自然な仕様と思いますが、これはバグなのでしょうか?それともどこかに設定
する箇所があるのでしょうか?

それと、ファイルを新規作成するとShift-JISのファイルが作られまするが、新規作
成時にUTF-8のファイルができるような設定はあるのでしょうか?


どなたかお分かりの方いらっしゃいましたら、よろしくお願いします。



[ ]
RE:21965 エンコードの種類を変更して保存No.21966
秀丸担当 さん 06/10/16 16:02
 

テキストファイルには原理的にエンコードの種類をファイルに記憶させる方法は
無いです。(例外もありますが)
エンコードの種類を判断するには、いかにしてテキストエディタ側で内容を解析
するかということになります。

それを解決するための方法は幾つかあります。

●内容を解析して判断する方法。
[ファイル]→[開く]→[自動判定の設定]
(または[その他]→[動作環境]→[ファイル]→[エンコード1])

●ヒストリから開く場合、以前のエンコードを記憶したものを利用。
[その他]→[動作環境]→[ヒストリ]
→[ファイルヒストリから開くときは前回のエンコードの種類で開く]

●ファイルタイプ別に固定のものを使う場合。
[その他]→[ファイルタイプ別の設定]→[その他]→[保存・読み込み]


UTF-16とUTF-8の場合は、BOM(Byte Order Mark)を付けることによって、ファイ
ルにUTF-16のバイト順やUTF-8であることを書き込むことができます。
これがあると自動認識に成功します。(自動判定の設定が「UnicodeのBOMを認識
になっていれば)
[ファイル]→[名前を付けて保存]→[BOMを付ける]をチェックして保存すると、
BOMが付きます。

ファイルにBOMが付いているかどうかを確認するには、[その他]→[動作環境]→
[ウィンドウ]→[ステータスバー]→[詳細]で、ステータスバーにBOMの有無を表
示させることで確認できます。

[ ]
RE:21965 エンコードの種類を変更して保存No.21967
秀丸担当 さん 06/10/16 16:03
 

>それと、ファイルを新規作成するとShift-JISのファイルが作られまするが、新規作
>成時にUTF-8のファイルができるような設定はあるのでしょうか?

あと書き忘れていましたが、新規作成時は、

[ファイル]→[開く]→[自動判定の設定]
(または[その他]→[動作環境]→[ファイル]→[エンコード1])

で、「標準のエンコードの種類」を設定することでできます。

[ ]
RE:21967 エンコードの種類を変更して保存No.21971
geyeri さん 06/10/17 10:24
 
どうもありがとうございました。ご指摘に沿って設定してみました。
(BOMは付けないことにしました。)

1つ疑問に思ったことがあるのでお尋ねします。
秀丸の設定は、今回の最初の質問をしたときの状態(ご指摘の設定をしていない状
態)だとします。

このとき、Shift-JISのファイルをUTF-8で保存したとします。
ヒストリーからではなくファイルをダブルクリックして開くとエンコードはShift-JI
Sと表示されます。(これが最初に質問したことです)

このファイルをそのまま(あるいは編集した後)上書き保存したとします。この上書
き保存されたファイルのエンコードはShift-JISなのでしょうか、それともUTF-8なの
でしょうか?

よろしくお願いします。

[ ]
RE:21971 エンコードの種類を変更して保存No.21972
秀丸担当 さん 06/10/17 11:03
 

>このとき、Shift-JISのファイルをUTF-8で保存したとします。
>ヒストリーからではなくファイルをダブルクリックして開くとエンコードはShift-JI
>Sと表示されます。(これが最初に質問したことです)
>
>このファイルをそのまま(あるいは編集した後)上書き保存したとします。この上書
>き保存されたファイルのエンコードはShift-JISなのでしょうか、それともUTF-8なの
>でしょうか?

Shift-JISとして解釈されたファイルを編集して、上書き保存すると、Shift-JIS
として保存されます。

ただ、ファイル内容が、半角英数字だけしか含まないようなファイルの場合、エ
ンコードは意味が無いに等しいです。
Shift-JISで保存しても、UTF-8で保存しても、全く同じ内容が出力されます。
(BOMが無ければ)

おそらく、扱われているファイルは、半角英数字だけのような内容なのではない
でしょうか。
標準の状態では、UTF-8は自動認識していると思います。
日本語などが含まれるUTF-8をShift-JISで読み込むと警告が出てくると思います。


半角英数字だけのファイルを判別する方法は無いです。
ただしxmlやhtmlの場合は、「xml宣言の認識」「htmlのmetaタグを認識」のオプ
ションでファイル内容に書かれていることで判別することもできます。

判別できない場合に最終的に[ファイル]→[開く]→[自動判定の設定]→[標準の
エンコードの種類]で指定されるものになります。


[ ]