エンコードの種類を変更しても戻ってしまNo.33617
avo さん 14/10/18 18:45
 
スタイルシート(CSS)ファイルのエンコード種類を
『Shift-JIS』から『UTF-8』に変更して保存しても『Shift-JIS』に戻ってしまいます。

タイトルバーにエンコードの種類を常に表示しているのですが
変更して保存した直後まではUTF-8に変わっています。
ファイルを終了して再度実行するとShift-JISに戻ってしまいます。

テキストファイル(xxx.txt)でも実験しましたが、同様の現象でした。
JIS・EUCにも変更できませんでした。

[その他]-[動作環境]-[ファイル(上級者向け設定)]-[エンコード1]
 自動で開くとき
  『ファイルの内容を解析してエンコードの種類を自動認識する』
   のチェックは外れています。(チェックはいっていても同じでした。)

  複数のエンコードの種類に適合する場合
   『候補の一覧を表示』が選択されています。
   『最初に確定したものにする』を選択しても同じでした。

OS:Windows7 Home Premium 64bit
秀丸エディタ:8.41

設定ミスなのか、操作ミスなのか分かりません。
お忙しいところ申し訳ありませんが、ご回答よろしくお願いいたします。

[ ]
RE:33617 エンコードの種類を変更しても戻No.33618
アルビレオ さん 14/10/18 20:01
 
ユーザーのアルビレオです。

おそらくファイルの内容がいわゆるASCII文字だけなのではないでしょうか。
その場合Shit-JISとUTF-8の内容は完全に同じで区別がつきません。というか区
別自体が無意味です。

そのテキストにASCII以外の文字(たとえば漢字やひらがななどの全角文字)を追
加した場合にはじめて違いが出ます。そのときにShift-JISで保存されるのはち
ょっと困るでしょう。

そのようなファイルを開いたときUTF-8と表示されるようにしたい場合は、
[その他]-[ファイルタイプ別の設定]-[その他]-[保存・読み込み]の[エンコード
の種類の指定]
の一番最初の項目を「UTF-8」にすればいいと思います。

[ ]
RE:33618 エンコードの種類を変更しても戻No.33619
avo さん 14/10/19 06:43
 
アルビレオ 様

早速のレスありがとうございます。

>おそらくファイルの内容がいわゆるASCII文字だけなのではないでしょうか。
全角文字を記載して保存でUTF-8に切り替わりました。
大変助かりました。的確なレスありがとうございます。

>その場合Shit-JISとUTF-8の内容は完全に同じで区別がつきません。というか区
>別自体が無意味です。
ASCII文字だけでは自動判別できないのは理解できますが、
今回はユーザーが [ファイル]-[エンコードの種類]-[UTF-8] と
明確にファイルの文字コード変更を指示しています。
ファイル文中に、Shift-JISとUTF-8を区別できる文字がなくても
ファイルのエンコードをUTF-8にするのが筋ではないでしょうか・・・?

>そのテキストにASCII以外の文字(たとえば漢字やひらがななどの全角文字)を追
>加した場合にはじめて違いが出ます。そのときにShift-JISで保存されるのはち
>ょっと困るでしょう。
今回の事案が本当にそうでした。
UTF-8になっていると思っていたのが、Shift-JISだったので・・・大変困りました。

>そのようなファイルを開いたときUTF-8と表示されるようにしたい場合は、
>[その他]-[ファイルタイプ別の設定]-[その他]-[保存・読み込み]の[エンコード
>の種類の指定]
>の一番最初の項目を「UTF-8」にすればいいと思います。
ご指摘いただいた通り、UTF-8で全て使うならこの設定でいいのですが、
秀丸エディタを使い始めて十年以上たっていて
今までエンコードの種類を意識した事がほとんど無く、
デフォルトでShift-JISを使っていました。
そのため設定を上記のように変えると、今までのファイルが全て文字化けしてしまい
ます。

それなら、HTML/CSSファイルをShift-JISで書けばいいのでは?という事になりますが
UTF-8のメリットもありますので、できればUTF-8で書きたいと思っています。

[ファイル]-[エンコードの種類]-[UTF-8] とエンコードの種類を指定した場合
ファイル文中に、Shift-JISとUTF-8を区別できる文字がなくても
強制的にUTF-8にする事はできないでしょうか?

[ ]
RE:33619 エンコードの種類を変更しても戻No.33620
h-tom さん 14/10/19 11:35
 

h-tom です。

>ASCII文字だけでは自動判別できないのは理解できますが、
>今回はユーザーが [ファイル]-[エンコードの種類]-[UTF-8] と
>明確にファイルの文字コード変更を指示しています。
>ファイル文中に、Shift-JISとUTF-8を区別できる文字がなくても
>ファイルのエンコードをUTF-8にするのが筋ではないでしょうか・・・?
ファイルを閉じて再度開くと、自動判定が働くので、識別可能な文字がない以上、
無理でしょう。
自動判定が有効でない場合は、OSデフォルトの文字コードにするのは、ある意味
普通の動作だと思いますよ。
(ファイルタイプ別設定を変えるのは駄目なんですよね?)

>[ファイル]-[エンコードの種類]-[UTF-8] とエンコードの種類を指定した場合
>ファイル文中に、Shift-JISとUTF-8を区別できる文字がなくても
>強制的にUTF-8にする事はできないでしょうか?
ファイルを開いている時点では変更は出来るので、閉じてから再度開く場合の事です
よね?

設定を有効にして、ファイルヒストリから開けばいいのでは?

動作環境
├ファイル
│├ヒストリ
││├ファイル/フォルダヒストリの表示
││├ヒストリの動作
│││├□ファイルヒストリから開くときは前回のエンコードの種類で開く

それが無理なら、自動判定を有効にし、UTF-8を使う場合、BOMをつけるとか?
UTF-8でBOMつけていると、誤動作するソフトもありますが。

[ ]
RE:33620 エンコードの種類を変更しても戻No.33621
avo さん 14/10/19 14:44
 
h-tom 様

レスありがとうございます。

>ファイルを閉じて再度開くと、自動判定が働くので、識別可能な文字がない以上、
>無理でしょう。
>自動判定が有効でない場合は、OSデフォルトの文字コードにするのは、ある意味
>普通の動作だと思いますよ。
そうですよね、判断する物がファイル内に無いので分かるはず有りませんよね。
当方の使用環境では、HTMLやCSSファイル以外のファイルが
Shift-JISで開く事自体に全く問題ないです。

>(ファイルタイプ別設定を変えるのは駄目なんですよね?)
HTMLやCSSファイルの場合は、文字コードをUTF-8で開き
他のファイル(.txtなど)をShift-JISで開ければ、最高なのですが・・・?

できました。
ありがとうございます。
下記設定でファイルの内容にかかわらず、HTML、CSSファイルはUTF-8で開き、
他のファイルはShift-JISのまま開くようになりました。

.htmlファイルを開き、
[.HTMLの設定]:HTMLファイル
[その他]-[ファイルタイプ別の設定]-[設定の対象]-[その他]-[保存・読込み]
  [エンコードの種類の指定]:Unicode(UTF-8) 改行=自動 BOMなし

.cssファイルを開き、
[.CSSの設定]:HTMLファイル
[その他]-[ファイルタイプ別の設定]-[設定の対象]-[その他]-[保存・読込み]
  [エンコードの種類の指定]:Unicode(UTF-8) 改行=自動 BOMなし

>ファイルを開いている時点では変更は出来るので、閉じてから再度開く場合の事で
>すよね?
その通りです。

>設定を有効にして、ファイルヒストリから開けばいいのでは?
ファイルヒストリの設定を、ご丁寧に教えていただきありがとうございます。

実は今回、他のエディタの動作もチェックしてみました。
TeraPad、サクラエディタ、EmEditor、の三種類で
全て最新版、新規インストールです。
(使うつもりはないので、作者様にはお詫び申し上げます。)

サクラエディタ以外は、秀丸エディタと同じく
ファイル内に全角文字がなければ、Shift-JISで開いてしまいます。

サクラエディタは、前回の文字コードと違う状態で開いた場合
ダイアログボックスが表示され、文字コードを選択できるようになっていました。
多分ヒストリ機能が働いていると思います。
(他のエディタもヒストリ機能があるかもしれませんが調べていません。)

これはこれで大変便利だと思いますが
ヒストリが切れた段階で、上手く動作するか分からないので
古いファイルを開いたときに、かえって混乱するような気がします。
・・・秀丸のヒストリ機能も同じだと思っています。

>それが無理なら、自動判定を有効にし、UTF-8を使う場合、BOMをつけるとか?
>UTF-8でBOMつけていると、誤動作するソフトもありますが。
HTMLやCSSファイルでは、BOMはつけてはいけないとの事なので無理でした。
http://www.solidpanda.com/book/article/944/

今回の件で一番簡単な解決方法は、日本語のコメントを入れるという事だと思います。
ただ、日本語のコメントを入れる前にファイルを保存してしまうと
その後Shift-JISで開いてしまい、気づかずに進んでしまいます。

質問の前に書いたCSSファイルが日本語のコメントが無い状態でできあがり
UTF-8のはずの文字コードが、いつの間にかShift-JISに変わっていて
大変戸惑いました。
HTML、CSSをやり始めたばかりで、何が悪いのか分からず
混乱して対応できませんでした。

アルビレオ様、h-tom様、今回はレスをつけていただきありがとうございました。
おかげさまで、希望とする動作が実現でき嬉しく思っています。

本当にありがとうございました。

avo

[ ]
RE:33617 エンコードの種類を変更しても戻No.33622
Iranoan さん 14/10/19 15:10
 
 秀丸エディタ担当さん今日は、Iranoan です。
> スタイルシート(CSS)ファイルのエンコード種類を
> 『Shift-JIS』から『UTF-8』に変更して保存しても『Shift-JIS』に戻ってしまい
>ます。
 こちらの件は、avo さんは当初の目的を達せられたようですが、CSS の場合
は、ファイル先頭の @charset の指定を HTML の meta タグ同様自動判定の参
考に加えてはどうでしょう?

[ ]
RE:33622 エンコードの種類を変更しても戻No.33623
avo さん 14/10/19 17:03
 
Iranoan 様

横槍ですみません。avoです。

>CSS の場合は、ファイル先頭の @charset の指定を HTML の meta タグ同様
>自動判定の参考に加えてはどうでしょう?
実はレスを受けている最中にテストしたのですが
[その他]-[動作環境]-[ファイル]-[エンコード1]の
『HTMLのmetaタグを認識』でチェックが入っている場合に
HTMLファイルに<meta charaset="UTF-8">が記載されていても
ファイル内に全角文字がなければ、Shift-JISで開いてしまいました。

上記動作環境の中の【標準のエンコードの種類】のボタンをして
表示されるウィンドウの中に、『標準のエンコードの種類は、
自動判別できなかった場合と、新規作成時とASCIIファイルに適用されます。』
となっているのが原因と思います。

そのためCSSファイル内の『@charset』を自動判別しても
判定に必要な文字コードが文中になければ判定できないのでは?と思っています。
私の設定、操作方法が間違っているかもしれませんので
この辺も合わせて私も、秀丸エディタ 担当者 様にご意見を伺いたいと思います。

ファイルの拡張子ではなく、ファイルの中身で文字コードが自動で判定できれば
同じファイルタイプでも文字コードの使い分けができるので、便利かと思っています。

[ ]
RE:33623 エンコードの種類を変更しても戻No.33625
秀丸担当 さん 14/10/20 09:54
 

>HTMLファイルに<meta charaset="UTF-8">が記載されていても
>ファイル内に全角文字がなければ、Shift-JISで開いてしまいました。

「HTMLのmetaタグを認識」の設定がONになっていれば、ASCII文字だけのファイ
ルであっても、metaタグがあれば認識します。
タイプミスがあるようで、
<meta charaset="UTF-8">
ではなく
<meta charset="UTF-8">
とするといいと思います。

>そのためCSSファイル内の『@charset』を自動判別しても
>判定に必要な文字コードが文中になければ判定できないのでは?と思っています。

CSSの@charsetについては、対応していませんでした。
HTMLとセットで使うことが多いようで、できたほうがいいと思います。
今後のバージョンで対応を検討したいと思います。
@charsetも判断できればmetaタグと同じような使い方ができるようになると思い
ます。

[ ]
RE:33625 エンコードの種類を変更しても戻No.33628
Iranoan さん 14/10/20 16:08
 
 秀丸担当さん今日は、Iranoan です。
> CSSの@charsetについては、対応していませんでした。
> HTMLとセットで使うことが多いようで、できたほうがいいと思います。
> 今後のバージョンで対応を検討したいと思います。
 ありがとうございます。

[ ]
RE:33628 エンコードの種類を変更しても戻No.33631
avo さん 14/10/20 18:05
 
Iranoan 様

今回はスレ立てていただき、ありがとうございました。
おかげさまで、当方の(しょうもない)間違いが分かりました。
また、CSSファイルも対応していただけるとの事で、嬉しく思っています。

秀丸エディタ 担当者 様

>「HTMLのmetaタグを認識」の設定がONになっていれば、
>ASCII文字だけのファイルであっても、metaタグがあれば認識します。
>タイプミスがあるようで、<meta charaset="UTF-8">
>ではなく<meta charset="UTF-8">
>とするといいと思います。
申し訳ありません。
タイプミスとは恥ずかしい限りです。
おかげさまで、metaタグで認識可能になりました。

> CSSの@charsetについては、対応していませんでした。
> HTMLとセットで使うことが多いようで、できたほうがいいと思います。
> 今後のバージョンで対応を検討したいと思います。
助かります。ありがとうございます。


[ ]