見落としを防ぐ!UTF-16対応テキストエディタ、UTF-16LEとBEを開く

UTF-16LEとBEを開くの工程を、原稿・検査装置・完成物の言語中立な3D静物で抽象的に示したアイキャッチ

UTF-16LEとUTF-16BEを開くときは、見た目で推測せず、先頭のBOM、エディタが示す文字コード、既知の日本語文の三つを照合します。LEとBEはバイトの並び順が異なるため、反対に読むと日本語はほぼ判別できなくなります。正しく開けた後に、UTF-8の別名複製を作ると移行作業が安全です。

LEとBEは何が反対なのか

UTF-16は文字を主に2バイト単位で扱います。LEは下位バイトから、BEは上位バイトから並べる方式です。同じ文章でも、ファイルのバイト列は異なります。

BOMは、先頭に置かれる並び順の目印です。FF FEならLE、FE FFならBEの判断材料になります。BOMがないファイルは、元システムの仕様や既知文を併用して判断します。

四十行の日本語で照合する

元の文章が分かる場合は、同じ日本語40行をLEとBEで用意し、二つのファイルを別々に開きます。先頭、中央、最後の行にある固有名詞と句読点を見比べると、方式の取り違えを発見しやすくなります。

確認ではUTF-16LEとBEが個別に判定され、BOMを本文比較から分けた後は代表文が一致しました。BOMを普通の文字として数えると先頭に差が出るため、ファイルの文字数と本文の文字数を同じと決めつけないことが大切です。

Rune Studioで開くときの確認順

Rune Studioで対象ファイルの複製を開き、タブの文字コード表示を見ます。表示がUTF-16LEまたはUTF-16BEなら、既知文の三箇所を確かめます。判定が不明な場合は、LEとBEの候補を切り替えますが、正解が決まるまで保存しません。

正しく読めたら、文字コードをUTF-8にした別名ファイルを作ります。保存後に開き直し、既知文の三箇所、行数、文末を確かめます。原本はLEまたはBEのまま残し、移行後の複製と役割を混ぜません。

NULが多い表示で上書きしない

UTF-16をUTF-8やShift_JISとして読むと、英数字の間に空文字のような表示が並んだり、まったく読めない文字列になったりします。これを見て「不要な文字を消す」と判断してはいけません。ほとんどの場合、文書の中身ではなく読み方が違うからです。

保存をせずに閉じ、元ファイルの複製からやり直します。BOMが破損している場合や、複数方式が混在する場合は、バイト単位を扱える専用ツールに切り替えます。

三つの根拠がそろってから変換する

UTF-16LEとUTF-16BEは、同じ文字を二バイト単位で並べる順序が異なります。拡張子が.txtでも判別できず、ファイル名にleと書かれていても内容の保証にはなりません。Rune Studioで候補を切り替える際は、BOMの有無を手掛かりにしつつ、既知の日本語、欧文、記号が同時に正しく見える候補を選びます。一部のASCII文字だけが見える状態を正解にしないことが大切です。

検証用ファイルには「あいうABC 123」「終端」のように種類の違う文字と末尾の印を入れておくと、読み方を比較しやすくなります。LEとBEの各コピーを開き、同じ表示になるかを確かめます。別形式へ保存するなら、元の二ファイルを残し、UTF-8など新しい用途のファイル名を分けます。

BOMを削除する前に利用先を確認する

BOMは読込側の判定を助ける場合がありますが、受け手の仕様によって必要性が違います。単に先頭へ見慣れない文字が出たからと削除せず、利用先の要件を確認します。この記事はRune Studio開発チームがUTF-16の代表ファイルを開き直した範囲に基づいています。複製でLEとBEを見分けたら、製品ページからRune Studioをダウンロードし、変換後も再読込まで確かめてください。

変換後にゼロ幅文字も意識する

見た目が同じでも、先頭や単語間へ制御文字が残ることがあります。変換後の検索やCSV取込で不自然な差が出たら、文字コードだけでなくBOMや不可視文字の影響を疑います。Rune Studioで代表語を検索し、先頭の最初の文字へカーソルを移して余分な位置がないかを見ます。削除は複製で試し、元のUTF-16ファイルへは戻せる状態を保ちます。

判定に迷うファイルは上書きせず、作成元へ形式を問い合わせることも有効です。

執筆者:Rune Studio開発チーム。UTF-16LEとBEを既知文字と再読込で判定する手順を説明しました。

LEとBEを名前だけで決めない

ファイル名にleと書いてあっても、それだけで判定しません。BOM、エディタの表示、既知文を揃えて、三つが同じ結論になることを確かめます。Rune StudioはLEとBEを別々の文字コードとして扱えるため、本文の比較と別名変換を同じ作業場で進められます。

すべての拡張文字や破損データが開けるという保証ではありません。まず40行程度の複製で、既知文と再読み込みを確かめてください。現行版の対応状況はRune Studioの商品ページで確認できます。