INI 設定 (.ini)

事實上的產業設定標準 標準

Windows Initialization Configuration (INI) 是由 Microsoft Windows 推廣的經典人類可讀設定檔格式,將應用程式設定組織到包含 key=value 對的具名 [sections] 中。

將 INI 轉換為 JSON

免費的瀏覽器端 INI 轉 JSON 轉換器。在您的裝置上即時轉換檔案。

檢查與中繼資料

作業系統與檔案分析工具透過檢查開頭的二進位位元組序列來識別 INI 檔案:

在這裡選擇或拖放檔案

私密 - 檔案絕不會離開您的裝置

或貼上 Ctrl+V
零網路傳輸隱私保證: 0 位元組上傳至外部伺服器。所有處理皆在本機瀏覽器沙箱中進行。

位元組層級標頭簽章(檔案簽章)

作業系統與檔案分析工具透過檢查開頭的二進位位元組序列來識別 INI 檔案:

十六進位簽章(偏移量 0):

5B ... 5D

ASCII 表示法: [...]

標準化: 事實上的產業設定標準

技術規格

容器架構結構化為 [section] 標頭的純文字設定檔,內含 key = value 對與註解(; 或 #)
壓縮未壓縮的文字檔
位元組序UTF-8 或 ANSI 文字串流
色彩空間不適用(設定檔)
色版與結構依區段命名空間分類的鍵值設定屬性
最大尺寸16 位元 Windows 中的歷史 64 KB 限制;在現代實作中無限制
透明度無
串流與漸進式循序逐行串流剖析器

技術比較矩陣:INI 對比競爭格式

技術屬性INI (目前)JSONYAMLTOML
語法複雜度最簡單(section + key=val)嚴格的括號與引號對縮排敏感的空白字元現代具型別表格
註解支援原生(; 與 # 註解)規格中不支援註解原生(# 註解)原生(# 註解)
巢狀結構僅限 1 層區段無限巢狀物件/陣列無限巢狀樹狀結構結構化表格陣列
資料型別隱含字串(應用程式會剖析型別)明確的數字、布林值、陣列明確的型別與錨點明確的日期、數字、陣列

常見損壞模式與十六進位修復指南

應用程式忽略設定或無法啟動。

根本原因: 缺少區段標題括號(例如 '[Settings' 而非 '[Settings]')或值中有未跳脫的等號。

修復: 使用 File2File.app 設定格式化工具驗證並修復 INI 語法。

安全性分析與解析器攻擊向量

INI 剖析器在反序列化為物件時,必須防範區段隱碼攻擊與原型汙染。

已知攻擊向量

  • INI 隱碼攻擊(INI injection),使用者輸入中的換行字元會建立未授權的設定區段。
  • JavaScript INI 剖析器中的原型汙染(prototype pollution),將屬性指派給「__proto__」。
  • 透過深度遞迴的區段名稱展開造成阻斷服務。

防禦最佳實務: 清理使用者輸入以禁止換行字元,並防範原型汙染。

歷史起源與里程碑

2000Python 的標準函式庫包含 configparser,用於處理 INI 檔案。
1995Windows 95 引入 Windows 登錄檔,以取代龐大的系統 INI 檔案(SYSTEM.INI、WIN.INI)。
1985Microsoft Windows 1.0 引入 WIN.INI 作為核心作業系統設定資料庫。

主要優勢與優點

  • 極為簡潔、直覺的語法:非技術使用者也能輕鬆閱讀和修改設定。
  • 幾乎所有程式語言都具備原生剖析 API(Python configparser、PHP parse_ini_file、C#)。
  • 區段命名空間可防止不同應用程式功能之間的設定衝突。

技術限制與缺點

  • 沒有正式的國際標準:註解字元(; 與 #)和跳脫規則在不同的剖析器之間會有所不同。
  • 扁平階層:不支援深度巢狀陣列或沒有自訂分隔符號的複雜結構化物件。
  • 所有值皆讀取為字串,需要應用程式手動剖析整數、布林值和浮點數。

有趣的技術冷知識

  • 在 Windows 3.1 中,整個作業系統中的每一個設定都只儲存在兩個檔案中:WIN.INI 與 SYSTEM.INI。
  • Git 使用 INI 格式來存放位於 '.git/config' 的主要儲存庫設定檔。
  • Linux 上的桌面捷徑檔案(XDG Desktop Entry '.desktop' 檔案)是使用標準 INI 語法建構的。

常見技術問題

INI 檔案是用來做什麼的?

桌上型軟體、遊戲和開發人員工具(例如 Git 設定檔與 PHP.ini)會使用 INI 檔案,以容易閱讀的格式儲存使用者偏好設定與組態設定。

我要如何編輯 INI 檔案?

您可以使用任何基本的文字編輯器(例如記事本、TextEdit、VS Code)開啟並編輯 INI 檔案,也可以直接使用 File2File.app 線上編輯。

我可以將 INI 轉換為 JSON 或 YAML 嗎?

可以。File2File.app 可以在您的瀏覽器中立即將 INI 檔案轉換為清晰易讀的 JSON、YAML 或 TOML 格式。