UTF-8で開かないNo.15321
naomi さん 03/08/29 23:49
 
Ver3.19を使用しています。

UTF-8を指定して保存したファイルを再度開くと
どうしてもSHIFT-JISで開いてしまって
「閉じて開く」で文字コードを「UTF-8」にしないとダメです。

動作環境の「文字コードの自動認識をする」はオンにしてあって
「UTF-8」にもチェックがしてあります。
「テンポラリファイルを利用して再オープンの高速化」も
オフになっています。

どうしたらUTF-8で開けるようになりますか?

[ ]
RE:15321 UTF-8で開かないNo.15322
Iranoan さん 03/08/30 00:45
 
 秀丸担当さん、naomi さん今日は、Iranoan です。
 念の為お断りしておくと、開発者とは何の関わりも無い単なる一ユーザです。

> UTF-8を指定して保存したファイルを再度開くと
> どうしてもSHIFT-JISで開いてしまって
 「閉じて開く」の場合、閉開前後でファイルが同じだと、文字コードが表示
上、開くときに指定した文字コードになりますが、実際には開き直しいないよ
うで、おかしなことになりますね。これは不具合だと思います。

> 動作環境の「文字コードの自動認識をする」はオンにしてあって
 文字コードの自動認識を完全に行うことは不可能なので、特に短いファイル
で誤認識するのは致し方ないと思います。

> どうしたらUTF-8で開けるようになりますか?
(1) 取り敢えず、一旦ファイル閉じる
(2) ウィンドウを新規で開き直す
(3) 「ファイルを開く」で文字コードを指定する
で開けます。

[ ]
RE:15322 UTF-8で開かないNo.15323
naomi さん 03/08/30 14:17
 
Iranoanさん、ありがとうございます。

>(1) 取り敢えず、一旦ファイル閉じる
>(2) ウィンドウを新規で開き直す
>(3) 「ファイルを開く」で文字コードを指定する
>で開けます。

そうですか。そうするとやっぱりファイルを秀丸アイコンに
ドロップする様な開き方はダメということですね。

たとえば、notepadでUTF-8を指定して保存したファイルは
ファイルを秀丸アイコンにドロップしても
正しくUTF-8で開けるのですが、秀丸でUTF-8を指定して保存した
ファイルは、次回開く時はSHIFT-JISで開きます。

notepadで保存した時と同じように次回もUTF-8で開けないかと
思うのですが...
もしかして、UTF-8を指定してもSHIFT-JISで保存されて
いるんでしょうか?
秀丸でUTF-8で保存したファイルをnotepadで開くと
文字コードがANSIとなります。

[ ]
RE:15323 UTF-8で開かないNo.15324
Ramen さん 03/08/30 18:00
 
naomiさんこんにちは。

http://www.maruo.co.jp/hidesoft/2/x14287_.html#14287
http://www.maruo.co.jp/hidesoft/2/x15177_.html#15177
http://www.maruo.co.jp/turukame/3/x02304_.html#2304

UTF-8ファイルにはファイル先頭にその文書がUTF-8で書かれているを示す
3バイトのコード(BOM)を付けることができるのですが、
付けない方がいいという話もあるようで…

β15でもBOM付きオプションはないようですが、検討はしていただける
ようなので、それまで待ちましょう。

なお、UTF-8が使えるnotepadでUTF-8を選択すると必ずBOMが付けられるので、
確実に識別できるようです。

[ ]
RE:15324 UTF-8で開かないNo.15325
でるもんた さん 03/08/30 18:56
 
こんにちは、でるもんたです。

> http://www.maruo.co.jp/hidesoft/2/x14287_.html#14287
> http://www.maruo.co.jp/hidesoft/2/x15177_.html#15177
> http://www.maruo.co.jp/turukame/3/x02304_.html#2304
>
> UTF-8ファイルにはファイル先頭にその文書がUTF-8で書かれているを示す
> 3バイトのコード(BOM)を付けることができるのですが、
> 付けない方がいいという話もあるようで…

ちょっと補足しますね。

本来 BOM(byte order mark)というのは、「生の Unicode」でファイルを保存
する場合に使われるものです。

「生の Unicode」というのは 1 文字が 16 ビット=2 バイトなのですが(最近
の Unicode は 32 ビットですが、説明の都合上省略)、上位 8 ビットと下位 8
ビットのどちらを先にしてファイルを保存するのかは規格では定められていませ
ん。つまり、たとえば「一」(0x4E00)は「4E 00」としても、「00 4E」として
も、どちらでもかまわないということです。

これは、CPU によって、どちらを先にすると都合がいいのかが異なるからです。
たとえば、Windows マシンでは下位 8 ビットが先のほうが都合がいいのですが、
Mac では上位 8 ビットが先のほうが都合がいいようになっています。

#ちなみに、シフト JIS や EUC では 8 ビットずつデータを読んでいくので、
#「必ず上位 8 ビットが先」と決められています。

ところがこれではどちらなのかわからないときに困る(たとえば、「一」のつも
りで書き出した「00 4E」を 0x004E とみなしてしまうと、これは「N」という
文字になる)ので、どちらの方法なのかを表すために、生の Unicode(UCS-2)
でデータを送受信・保存するときには、0xFFFE という 1 文字をデータの先頭に
置くことになっています。これが FE FF という並び順で保存されていれば Win-
dows 流の「下位 8 ビットが先」方式なので Mac で読むときは順序の入れ替え
作業しながら読み込む、FF FE という並び順になっていれば Mac 流の「上位 8
ビットが先」方式なので逆に Windows で読むときに順序の入れ替え作業をする、
ということになっています。

で、UTF-8 ではデータの並び順を厳密に決めてある(たとえば、0xFFFE という
1 文字を機械的に UTF-8 に変換すると、必ず「EF BB BF」という 3 バイトにな
る)ので、BOM がなくても、UTF-8 だということさえわかっていれば正常に読み
書きができるようになっています。そこで、Unicode の規格書には、「UTF-8 で
は BOM をつけるべきではない」と規定されており、秀丸もこれに従っています。

ところが、「生の Unicode で BOM のあるデータをいったん UTF-8 に変換して
加工し、それからまた BOM のある生のデータに戻すので、UTF-8 でも BOM を
つけられるようにしてほしい」という要望が出ています。

実際、他のエディタでは、
> なお、UTF-8が使えるnotepadでUTF-8を選択すると必ずBOMが付けられる
ほか、xyxxy というエディタが必ず BOM をつける仕様になっている、ということ
が上記の過去ログに記載されています。

#xyxxy が参考にしている Emacs は、なぜか手元の環境では UTF-8 を扱えるは
#ずなのにうまくいかないので、未確認。

規格上は BOM をつけないほうが正しいので、選択オプションになるのではという
話でしたね。

なお、
> やっぱりファイルを秀丸アイコンに
> ドロップする様な開き方はダメということですね。
というのは UTF-8 に限った話ではなく、サイズの小さいファイルだとシフト JIS
と EUC の判別でも失敗することがあります。特に、半角カタカナが混じっている
場合は相当の鬼門です。

[ ]
RE:15325 UTF-8で開かないNo.15326
naomi さん 03/09/01 10:24
 
Ramenさん、でるもんたさん
詳しいご説明ありがとうございました。
理解しました。

たしかにアイコンにドロップして開けるのは便利なのですが
UTF-8に限っては、新規ウィンドウから文字コード指定で
開く方法が良いようですね。

notepadを使うという方法もありますが、やっぱり秀丸が
使いたいので、手間は惜しまないことにします。

過去ログのURLもありがとうございました。
大変参考になりました。

また何かありましたら、いろいろ教えてください。
宜しくお願いします。

[ ]
RE:15326 UTF-8で開かないNo.15332
秀丸担当 さん 03/09/01 18:05
 

必ずUTF-8でしか開かないファイルタイプあれば、[ファイルタイプ別の設定]→
[保存・読込み]→[標準の文字コード]で、UTF-8を指定することで、ドラッグ&
ドロップでもUTF-8で開くことができます。
BOMについてはでるもんたさんの言われる通りですが、オプションを付けるのを
検討中です。

[ ]
RE:15322 UTF-8で開かないNo.15355
秀丸担当 さん 03/09/05 18:29
 

> 「閉じて開く」の場合、閉開前後でファイルが同じだと、文字コードが表示
>上、開くときに指定した文字コードになりますが、実際には開き直しいないよ
>うで、おかしなことになりますね。これは不具合だと思います。

これは再現しませんでした。
具体的な再現手順を教えていただけると助かります。

[ ]
RE:15355 UTF-8で開かないNo.15356
Iranoan さん 03/09/05 18:57
 
 秀丸担当さん今日は、Iranoan です。
> これは再現しませんでした。
> 具体的な再現手順を教えていただけると助かります。
 催促をしておいて申し訳有りません。少なくとも現在使用している
Ver.4.00β15 では再現しませんでした。

[ ]