[ 新規に投稿する ]

エンコードの判定に失敗するようですNo.41703
しろおか さん 25/02/22 09:59 [ コメントを投稿する ]
  秀丸の一行目に

相続土地国庫帰属制度

とだけ書いて、これを保存します。Unicode(UTF-8)で保存するように設定してあると思います。

ところが、閉じたファイルを開こうとすると、日本語(Shift-JIS)で開くようで、文字化けします。

逶ク邯壼悄蝨ー蝗ス蠎ォ蟶ー螻槫宛蠎ヲ

「自動判定で読み込みなおし」で読み込みなおしてもダメでした。

どうやら、「相続土地国庫帰属制度」のような内容だけだと自動判定で失敗するのではないかと思います。「漢字だけだとエンコードの種類の判定がおかしくなるようだ。」のような文を追加すると、きちんと動くようになります。秀丸は9.43の最新版にアップデートしましたが、この点についての動作に変化はありませんでした。

2025年2月22日

しろおか
[ ]
RE:41703 エンコードの判定に失敗するようですNo.41704
こみやんま さん 25/02/22 11:48 [ コメントを投稿する ]
  自動判定で秀丸がどうエンコードを判定するか、は、

「動作環境」「エンコード1」の設定に大きく影響を受けるかと思います。

現代だとほとんどの人は、
以下のようにするのが最適なんじゃないでしょうか。

● ファイルの内容を解析してエンコードの種類を自動認識する(にチェック)

 1. Unicode(UTF-8)
 2. 日本語(Shift-JIS)
  3. Unicode(UTF-16)

「この順番」(順番大事)にして、「以上の3つだけにチェックを入れる」(受け取ることもないようなフォーマットは外す)、
でいいんじゃないでしょうか。

◯ 最初に確定したものにする(推奨)にチェック

■新規作成やASCIIのとき
 これも Unicode(UTF-8)

●XML宣言の認識(にチェック)
●HTMLのmetaタグを認識(にチェック)
●UnicodeのBOMを認識(にチェック)
◯SJISの外事を除外(はまぁ好きに)(チェックはなしでいいかな)

設定を変更したとしても直近開いていたものは、
対象のファイルのエンコードを秀丸が記憶してしまったいたかと思うので要注意ではあります。

[ ]
RE:41703 エンコードの判定に失敗するようですNo.41706
western さん 25/02/22 16:32 [ コメントを投稿する ]
  既にこみやんまさんから設定の変更による解決と注意事項フォローが入っていますので、原因の解説をば

日本語が使える文字コードにはいくつか種類がありますが、
「文字コード判定しても、複数の文字コードとしてエラーが起きない」
という状況が日本語が少ない文書でよく発生するので
その場合に『どの文字コードを採用するか?』 という判断が必要になります

※なので秀丸のバージョン等に関係なく、文字コード自動判定を行う全てのシステム
 で誤認を誘発する稀有な文字列です(1文字ずらししても判定エラー起こさない長い単語として初めて見ました)


UTF8文書に平仮名があれば誤認しないということもなく『あん』であれば誤ってSJIS判定されますし
漢字で『乳』という文字は1文字で EUC か SJIS か UTF8 かを確定できるので
昔のHTMLの文字化け回避に先頭でよくコメントとして書かれていたりしました

今回の文字列は偶々SJIS優先でSJIS判定でエラーにならなかっただけなので、
逆にSJISで書いてるのにUTF8やEUC優先だとそちらで判断されてしまう文字列も存在します

このトラブルを回避するためにUTF8にはBOMという見えない文字を先頭に付けるルールがあり、
秀丸エディタのマクロではBOMを付けることでトラブル回避していたりもする重要な機能ですが
一般文書ではBOMが付ていない事も多いので、秀丸エディタでは素直に設定で解決するのが無難と思われます


こみやんまさんと別のフォローになりますが、

「複数のエンコードの種類に適合する場合(M)」の設定を『候補の一覧を表示』にしておくのも
偶発的なトラブルを起こしたくない職業の方には、良い選択だと思います
[ ]
RE:41704 エンコードの判定に失敗するようですNo.41707
しろおか さん 25/02/22 17:16 [ コメントを投稿する ]
  こみやんま様

>現代だとほとんどの人は、
>以下のようにするのが最適なんじゃないでしょうか。
>
>● ファイルの内容を解析してエンコードの種類を自動認識する(にチェック)
>
> 1. Unicode(UTF-8)
> 2. 日本語(Shift-JIS)
>  3. Unicode(UTF-16)
>
>「この順番」(順番大事)にして、「以上の3つだけにチェックを入れる」(受け取ることもないようなフォーマットは外す)、
>でいいんじゃないでしょうか。
>
>◯ 最初に確定したものにする(推奨)にチェック

ありがとうございます。こういう設定が秀丸にあったこともまったく覚えていませんでした。これでうまくいきましたが、Shift-JISを上にしていたのは、コマンドプロンプトで使うツールが Shift-JIS にしか対応していなかったためだったかもしれません。いまだに Shift-JISのテキストファイルで検索したりしています。いずれにしても、問題が起きれば、ここを調整するということですね。

2月22日

しろおか
[ ]
RE:41706 エンコードの判定に失敗するようですNo.41708
しろおか さん 25/02/22 17:28 [ コメントを投稿する ]
  western 様

説明、ありがとうございます。テキストファイルの冒頭に題名になりそうなものだけを他所からコピペして、あとから、詳しい内容を書こうと思っていたファイルでした。

western さんの説明では、こういうことは保存する内容次第で、起きてもおかしくなかったわけですね。これまでエンコードの取り違えは起きた経験がなかったのが、むしろ、不思議なくらいだったかもしれません。

2月22日

しろおか
[ ]

[ 新規に投稿する ]