INI設定 (.ini)

事実上の業界設定標準 標準

Windows初期化設定(INI)は、Microsoft Windowsによって普及した古典的な人間が読める設定ファイル形式であり、アプリケーション設定をキーと値のペアを含む名前付きの[セクション]に整理します。

INI を JSON に変換

無料のブラウザ内 INI から JSON へのコンバーター。お使いのデバイスでファイルを即座に変換します。

調査とメタデータ

オペレーティングシステムやファイル解析ツールは、先頭のバイナリ列を検査してINIファイルを識別します:

ファイルを選択するか、ここにドロップしてください

プライベート - ファイルがデバイスの外に出ることはありません

または貼り付け Ctrl+V
ネットワーク送信ゼロのプライバシー保証: 外部サーバーへのデータ送信は0バイトです。すべての処理はお使いのブラウザのサンドボックス内でローカルに実行されます。

バイトレベルのヘッダーシグネチャ (マジックバイト)

オペレーティングシステムやファイル解析ツールは、先頭のバイナリ列を検査してINIファイルを識別します:

16進数シグネチャ(オフセット0):

5B ... 5D

ASCII表現: [...]

標準化: 事実上の業界設定標準

技術仕様

コンテナアーキテクチャ[section]ヘッダー、key = valueの組、およびコメント(;または#)で構成するプレーンテキストの設定ファイル
圧縮非圧縮テキストファイル
バイトエンディアンUTF-8またはANSIのテキストストリーム
色空間該当なし(設定ファイル)
チャンネルと構造セクションの名前空間ごとに分類されたキーと値の設定プロパティ
最大寸法16ビットWindowsでは歴史的な上限が64 KB。現行の実装では上限なし
透過性なし
ストリーミングとプログレッシブ行単位で順次処理するストリーミングパーサー

技術比較表:INIと競合製品

技術属性INI (現在)JSONYAMLTOML
構文の複雑さ可能な限り最もシンプル(セクション + key=val)厳格な括弧と引用符インデントに敏感なホワイトスペース最新の型付きテーブル
コメントのサポートネイティブ(;および#コメント)仕様でコメントはサポートされていませんネイティブ(#コメント)ネイティブ(#コメント)
ネストされた構造1レベルのセクションのみ無限にネストされたオブジェクト/配列無限にネストされたツリー構造化テーブル配列
データ型付け暗黙的文字列(アプリが型を解析)明示的な数値、ブール値、配列明示的な型とアンカー明示的な日付、数値、配列

一般的な破損モードと16進数リカバリガイド

アプリケーションが設定を無視するか、起動に失敗する。

根本原因: セクションヘッダーの閉じ括弧の欠落(例:「[Settings]」ではなく「[Settings」)や、値に含まれるエスケープされていない等号。

復旧: File2File.app Config Formatterを使用して、INI構文を検証および修正します。

セキュリティ分析とパーサー攻撃ベクトル

INIパーサーは、オブジェクトに逆シリアル化する際、セクションインジェクション攻撃やプロトタイプの汚染から保護する必要があります。

既知の攻撃ベクター

  • ユーザー入力での改行の挿入により不正な設定セクションが作成されるINIインジェクション。
  • '__proto__'に割り当てるJavaScript INIパーサーにおけるプロトタイプの汚染。
  • 深く再帰的なセクション名展開によるサービス拒否(DoS)。

防御的ベストプラクティス: 改行文字を禁止し、プロトタイプ汚染を防ぐためにユーザー入力をサニタイズします。

歴史的背景とマイルストーン

2000Pythonの標準ライブラリには、INIファイルを扱うためのconfigparserが含まれています。
1995Windows 95が、モノリシックなシステムINIファイル(SYSTEM.INI、WIN.INI)に代わるWindowsレジストリを導入。
1985Microsoft Windows 1.0が、コアオペレーティングシステム設定データベースとしてWIN.INIを導入。

主なメリット

  • 非常にクリーンで直感的な構文:非技術者でも設定を簡単に読み取って変更できます。
  • ほぼすべてのプログラミング言語におけるネイティブ解析API(Pythonのconfigparser、PHPのparse_ini_file、C#)。
  • セクション名前空間により、異なるアプリケーション機能間での設定の衝突を防ぎます。

技術的な制限とデメリット

  • 正式な国際標準はありません。コメント文字(;対#)やエスケープ規則はパーサーによって異なります。
  • フラットな階層:カスタム区切り文字なしでは、深くネストされた配列や複雑な構造化オブジェクトをサポートしていません。
  • すべての値が文字列として読み取られるため、アプリケーションは整数、ブール値、浮動小数点数を手動で解析する必要があります。

興味深い技術トリビア

  • Windows 3.1では、オペレーティングシステム全体のすべての設定が、WIN.INIとSYSTEM.INIのわずか2つのファイルに保存されていました。
  • Gitは、'.git/config'にあるプライマリリポジトリ設定ファイルにINI形式を使用します。
  • Linuxのデスクトップショートカットファイル(XDGデスクトップエントリの'.desktop'ファイル)は、標準的なINI構文を使用して構造化されています。

よくある技術的な質問

INIファイルは何に使用されますか?

INIファイルは、デスクトップソフトウェア、ゲーム、開発者ツール(Git configやPHP.iniなど)によって、ユーザー設定や構成設定を読みやすい形式で保存するために使用されます。

INIファイルを編集するにはどうすればよいですか?

Notepad、TextEdit、VS Codeなどの基本的なテキストエディタを使用するか、File2File.appを使用してオンラインで直接INIファイルを開いて編集できます。

INIをJSONやYAMLに変換できますか?

はい。File2File.appを使用すると、ブラウザ上で即座にINIファイルをクリーンなJSON、YAML、またはTOML形式に変換できます。