参考 | Windows、Linux、Macでファイルエンコーディングを検出する方法 ファイルエンコーディングとは、テキストをファイル内で表現する方法を指します。 Windows、Linux、および Mac では、ファイルのエンコードを決定するためのツールとコマンドを使用できます。 Windows でのファイルエンコーディングの検出 メモ帳の使用 メモ帳は、ファイルのエンコードを検出するためのユーザーフレンドリーな方法を提供します。 手順: メモ帳でファイルを開きます。ウィンドウ上部の ビューメニューに移動し、「ステータスバー」が選択されていることを確認します。メモ帳は、検出されたエンコーディング(UTF-8、ANSIなど)をウィンドウの下部にあるステータスバーに表示します。 「CertUtil」コマンドの使用 CertUtil は、ファイルの内容を 16 進数でダンプできる Windows の組み込みツールです。これは、特定のエンコーディングを示す BOM を検出するのに役立ちます。 手順: ターミナルを開きます。次のコマンドを実行します。 certutil -dump C:\path\to\your\file.txt 出力の最初の数バイトは、BOM が存在するかどうかを識別するのに役立ちます。例 : UTF-8:EF BB BFUTF-16 (BE): FE FFUTF-16 (LE): FF FEUTF-32 (BE): 00 00 FE FFUTF-32 (LE): FF FE 00 00 *ファイルのエンコーディングが明示的に指定されていない場合(たとえば、BOMが存在しない場合)、エンコーディングの決定があいまいになることがあります。UTF-8 (BOM なし)、ASCII、ANSI などの一般的なエンコーディングは、特定のテキストファイル、特に基本的な文字のみを含むテキストファイルで同じように見えることがあります。このような状況では、PowerShell とほとんどのテキスト エディターは、システムの既定値またはコンテンツ自体に基づいてエンコードについて仮定しますが、特に ASCII 以外の文字では、解釈が正しくない可能性があります。 「PowerShell」の使用 PowerShell がファイルのエンコードを自動的に決定する方法はありません。 ただし、さまざまなエンコーディングでコンテンツをロードできます。 手順: PowerShell を開きます。次のコマンドを実行します。 Get-Content -Path "C:\path\to\your\file.txt" -encoding utf8 encoding パラメーターの許容値は次のとおりです。 ascii:ASCII (7 ビット) 文字セットのエンコーディングを使用します。ansi: 現在のカルチャの ANSI コード ページのエンコードを使用します。 * このオプションは PowerShell 7.4 で追加されました。 bigendianunicode:ビッグエンディアンのバイト順を使用して UTF-16 形式でエンコードします。bigendianutf32: ビッグエンディアンのバイト順を使用して UTF-32 形式でエンコードします。oem:MS-DOSおよびコンソールプログラムにデフォルトのエンコーディングを使用します。unicode:リトルエンディアンのバイト順を使用して UTF-16 形式でエンコードします。utf7:UTF-7 形式でエンコードします。utf8:UTF-8 形式でエンコードします。utf8BOM:バイトオーダーマーク (BOM) を使用して UTF-8 形式でエンコードします。utf8NoBOM:バイトオーダーマーク (BOM) なしで UTF-8 形式でエンコードします。utf32:UTF-32 形式でエンコードします。 エンコード検出であいまいさが発生した場合は、「Get-Content」の「-Encoding」パラメーターで指定することで、さまざまなエンコーディングを手動で使用してファイルを読み取ろうとできます。たとえば、'utf8'、'ascii'、または 'unicode' を含むファイルを読み取って、どのエンコーディングがテキストを正しくレンダリングするかを確認してください。 Linux でのファイルエンコーディングの検出 「file」コマンドの使用 'file' コマンドは、ファイルのエンコーディングをチェックする最も簡単で一般的な方法の 1 つです。 手順: ターミナルを開きます。次のコマンドを実行します。 ファイル -i /PATH/file.txt このコマンドは、ファイルタイプとエンコーディングを返します。 例: file.txt: text/plain; charset=UTF-8 Hex エディターの使用 ファイルの内容を 16 進数ダンプに変換します。 手順: ターミナルを開きます。次のいずれかのコマンドを選択して実行します。 xxd filename.txt |head -n 1hexdump -C filename.txt |head -n 1 * head -n 1は、出力を最初の行のみに制限します 出力の最初の数バイトは、BOM が存在するかどうかを識別するのに役立ちます。例 : UTF-8:EF BB BFUTF-16 (BE): FE FFUTF-16 (LE): FF FEUTF-32 (BE): 00 00 FE FFUTF-32 (LE): FF FE 00 00 エンコードの検出であいまいさが発生した場合は、異なるエンコードを使用してファイルを手動で読み取ってみることができます。 たとえば、'utf8' や 'ascii' を含むファイルを読み込んで、どのエンコーディングがテキストを正しくレンダリングするかを確認します。iconv -f UTF-8 -t UTF-8 filename.txt Macでのファイルエンコーディングの検出 「file」コマンドの使用 'file' コマンドは、ファイルのエンコーディングをチェックする最も簡単で一般的な方法の 1 つです。 手順: ターミナルを開きます。次のコマンドを実行します。 file -I /PATH/file.txt このコマンドは、ファイルタイプとエンコーディングを返します。 例: file.txt: text/plain; charset=UTF-8 Hex エディターの使用 ファイルの内容を 16 進数ダンプに変換します。 手順: ターミナルを開きます。次のいずれかのコマンドを選択して実行します。 xxd filename.txt |head -n 1hexdump -C filename.txt |head -n 1 * head -n 1は、出力を最初の行のみに制限します 出力の最初の数バイトは、BOM が存在するかどうかを識別するのに役立ちます。例 : UTF-8:EF BB BFUTF-16 (BE): FE FFUTF-16 (LE): FF FEUTF-32 (BE): 00 00 FE FFUTF-32 (LE): FF FE 00 00 エンコードの検出であいまいさが発生した場合は、異なるエンコードを使用してファイルを手動で読み取ってみることができます。 たとえば、'utf8' や 'ascii' を含むファイルを読み込んで、どのエンコーディングがテキストを正しくレンダリングするかを確認します。iconv -f UTF-8 -t UTF-8 filename.txt バージョン公開日主な変更点1.0dd-mmm-yyyy初期バージョン2.0---この記事の各追加バージョンに加えられた更新の概要を提供します。