3件の投稿を表示中 - 1 - 3件目 (全3件中)
  • 投稿者
    投稿
  • #19761

    redakt55
    Participant

    「CP932に無い文字を追加して保存の怪」で書いたことと非常に近い話なのですが,別スレッドにします。

    UTF-8 で「鷗」と書いたテキストファイルを用意します。
    そして,ステータスバーの「UTF-8(BOM無し)」をダブルクリックして,「日本語(シフトJIS)」を選択すると,「指定したエンコードで変換できない文字が含まれています。編集を続行して保存するとファイルの中身が壊れます」というダイアログが出ます。
    まずこの日本語が変です「指定したエンコードで」ではなく「指定したエンコードに」ではないでしょうか。
    また「編集を続行して保存する」の意味が分かりません。今まさに保存させようとしているのに「編集を続行」とは?

    そして,「一覧からエンコードを選択する」にして,「日本語(シフトJIS)」を選ぶと当然文字化けするのですが,その化け方がおかしいです。UTF-8 のテキストを Shift JIS と解釈して開いたように化けるのです。
    保存させようとしているのに,保存はせず,Shift JIS で開き直してしまっているようです。
    本来なら「鷗」の箇所だけが化けて保存されるべきでしょう。
    同様に,保存させようとしているのに,ダイアログに選択肢として「現在のエンコードで開くことを続行する」(つまり開く操作)が出てくるのも変です。

    それから,このダイアログに「現在のエンコード:日本語(シフトJIS)」と出ていますが,まだ保存していないので「UTF-8」と出るべきではないでしょうか。

    以上はステータスバーから文字コードを変えようとした場合の話ですが,「名前を付けて保存」で文字コードに「日本語(シフトJIS)」を選んで「保存」ボタンを押したときの動作も不可解です。
    「この文書は,保存用に選択されたエンコードで保存すると失われてしまう文字を含んでいます」というダイアログが出ます。
    ここで「一覧から選択する」にして「OK」ボタンをクリックすると,文字コード一覧は出ずに再び保存ダイアログが出ます。

    #19767

    Yutaka Emura
    Keymaster

    redakt55 様

    いつも EmEditor Professional をお使いいただき、誠にありがとうございます。

    UTF-8 のファイルを開いてから、ステータス バーのエンコード(この場合、「UTF-8(BOM無し)」)をダブルクリックすると、保存用エンコードを変更するのではなく、ファイルを指定するエンコードで読み直しを行おうとします。したがって、この場合、「日本語(シフトJIS)」を選択すると、既に存在する UTF-8 のファイルをシフトJISで開こうとするため、指定したエンコードで変換できない文字が存在するために、警告メッセージが表示されます。さらに、シフトJISでファイルを開いた後に編集を続行して保存すると、ファイルが壊れることになります。

    「一覧からエンコードを選択する」にして,「日本語(シフトJIS)」を選ぶと当然文字化けする、というのは、UTF-8 をシフトJISとして解釈して開いているためで、これで正しいです。

    エンコードを変更して保存したい場合には、[ファイル] メニューの [名前を付けて保存] を選択して表示されるダイアログの中で、「エンコード」ドロップ ダウン リストから、エンコードを指定するか、または、「クイック起動」または「すべてのコマンド」から、「…で保存」を選択します。

    よろしくお願い申し上げます。

    #19771

    redakt55
    Participant

    すべては私がこのダブルクリック操作の意味を勘違いしていたせいなのですね。お手数をおかけしてすみません。
    「編集を続行して保存するとファイルの中身が壊れます」の意味も今やっと分かりました。そうやって読み直したあと編集して保存すると壊れるよ,ということだったのですね。

    ただ,やはり「指定したエンコードで変換できない文字が含まれています。」という文言は日本語として変だと思います。
    ここで表現すべき内容は「指定したエンコードでは解釈できないバイト列が含まれています」ではないでしょうか?
    (ただ,「バイト列」とかいうと分かりにくい人もいると思うので,これは「文字」としたほうがいいかもしれませんが)

3件の投稿を表示中 - 1 - 3件目 (全3件中)

このトピックに返信するにはログインが必要です。

友達に知らせる... Tweet about this on TwitterShare on FacebookShare on Google+Email this to someone