保存前に気づける!MacテキストエディタのUTF-8変換、変換不能文字を赤表示

変換不能文字を赤く示して解消まで保存を止めるアイキャッチ

Shift_JISの原稿をUTF-8へ変換する場合、変換元を正しく読むことと、UTF-8を変換先にすることは別の条件です。rune Studioの製品資料では、赤い表示は、現在選ばれている文字コードで表せない文字の位置を示すものと定義されています。赤は「原稿に悪い文字がある」という印ではありません。

この意味を逆に読むと、変換できる文字まで書き換えたり、Shift_JISを保存先にしたときの条件をUTF-8にも当てはめたりします。この記事では、MacでShift_JISからUTF-8へ変える判断と、製品資料に記載された赤表示の意味を分けて説明します。Shift_JISからUTF-8への保存・再読込・全文一致を完遂した操作手順は扱いません。

先に、変換元と変換先を分ける

ここで考える向きは、Shift_JISのバイト列をShift_JISとして読み、復号した本文をUTF-8のバイト列として書くことです。これは文字コード変換の一般原理であり、赤表示そのものが変換元や変換先を決めるわけではありません。原本と変換結果を別に残せることは、あとで本文を比較するための前提です。

開発版のrune StudioでShift_JISの検証原稿を読み出したときは、文字コードがShift_JISと判定されました。ただし、文字コードの判定が常に正しいとは限りません。まず、返った文字コードが想定どおりか、本文と記号が正しく読めているかを確かめます。

UTF-8への書き込みは、すでに誤って読まれた文字を元へ戻す処理ではありません。 正しく読めた本文を別の文字コードで表す処理です。

赤表示は保存先との組み合わせを示す

製品資料に記載された赤い背景の対象は、現在選択中の文字コードで表せないUnicode文字です。したがって、Shift_JISを保存先にしたときの赤は「Shift_JISでは表せない」という条件を示し、それだけで「UTF-8へ変換できない」とは判断できません。赤は変換元の異常ではなく、文字と選択中の保存先との組み合わせを示すものです。

検証で確認したのは、位置の返却と保存拒否

開発版では、髙・𠮷・瀨を含むUTF-8原稿をShift_JISとして検査したところ、表せない文字として𠮷の1件が位置付きで返りました。その状態でShift_JIS保存を試すと、ファイルは作られませんでした。

この結果から分かるのは、見た目が珍しい文字を手作業で選び出せないことです。髙と瀨は通り、𠮷だけが返りました。検査で返った位置と文字を確認して判断します。 件数は確認範囲を把握する材料にはなりますが、何分かかるか、何件なら変換を中止するかを一律には決められません。

赤表示を読むための3つの確認軸

1つ目は変換元です。 rune Studioの実測では、1本のShift_JIS検証原稿がShift_JISと判定されました。これはその検証例の結果であり、すべての原稿で判定が当たる保証ではありません。赤表示も、変換元が正しく読めたことを証明するものではありません。

2つ目は現在選択中の保存先です。 製品資料上の赤表示は、その文字コードで表せない位置を示します。Shift_JISを選んだ状態の赤なら、判断できるのはShift_JISとの組み合わせです。UTF-8への変換可否へそのまま読み替えません。

3つ目は本文保持です。 赤がないことと、変換前後の本文全体が一致することは別です。本文保持を確かめる一般的な条件は、変換元と変換結果をそれぞれの文字コードで復号し、全文を比較することです。検索件数だけでは、別の場所で起きた欠落と増加が相殺される可能性を除けません。

今回の操作記録には、Shift_JISからUTF-8への別名保存、UTF-8としての再読込、全文一致までを完遂した結果はありません。そのため、この3軸は赤表示の判断範囲を整理するものであり、rune Studioの完了済み変換手順ではありません。

赤表示の意味だけで決めてはいけないこと

赤の対象とされた文字をすぐ削除しない。 その表示がどの保存先文字コードを条件にしたものかを先に確認します。

似た字へ自動的に置き換えない。 人名や地名では別の字になることがあります。UTF-8へ変換する目的なら、元の文字を保つことが基本です。

赤が消えたことだけで本文保持まで確認したことにしない。 赤表示は、選択中の文字コードで表せるかを確認する機能です。誤った読み込みや、変換前後の本文差分をすべて検出する機能ではありません。

向く人と、別の確認が必要な人

この赤表示の読み方は、Macで受け取ったShift_JIS原稿を、編集や入稿のためUTF-8へ統一したい人に向きます。古い日本語原稿、人名や地名を含む資料、複数の文字コードが混ざった制作環境で、不要な削除や置換を避ける判断に役立ちます。

すでにUTF-8で正しく保存されている原稿は、変換する必要がありません。また、販売先での受理や端末表示は、この赤表示では確認できません。この記事で確認済みなのは、製品資料上の赤表示の意味と、開発版での逆方向の検査・Shift_JIS保存拒否までです。

まとめ

赤表示を見たら、まず現在選択中の保存先文字コードを確認し、UTF-8へ変換できない印だと即断しないでください。変換操作に使う道具には、元の内容を残し、UTF-8の結果を別に検証できることが必要です。

Rune Studioの製品ページを見る