什麼是文字轉八進位?

文字轉八進位工具將文字轉換為基數 8 的位元組值。每個字元變成三位數的八進位數值,常見於 Unix 檔案權限和 C 跳脫序列。

每個字元都會被轉成八進位數。預設以 UTF-8 位元組編碼——三位八進位剛好涵蓋一個位元組(000 到 377),所以 Unix 的 chmod 至今仍以八進位表示權限,C、Python 與 shell 也接受 \nnn 形式的位元組轉義。若需要原始 Unicode 碼點,可切換到碼點模式,每個字元對應一個八進位數。兩種模式都支援反向解析:貼回八進位後會以 0-7 數字驗證,並重建原文。

使用方法

  1. 在輸入框中輸入或貼上要轉換為八進位的文字。
  2. 選擇編碼方式(UTF-8 位元組或原始碼點)、分隔符號(空格、逗號、短橫線或換行)、前綴樣式(無、\NNN、0o 或 %),並決定是否補前導零。
  3. 複製八進位輸出用於指令稿或文件。切換到反向模式可將八進位轉換回文字。

何時使用

  • 在 C 字串字面量裡以 \\NNN 形式嵌入不可列印的字元。
  • 解讀組態檔或日誌裡以八進位記錄的位元組內容。
  • 示範非 ASCII 字元在 UTF-8 編碼下會拆成多個八進位三元組。

結果

輸入 'Hello',得到 '110 145 154 154 157'(空格分隔)或 '\\110\\145\\154\\154\\157'(反斜線前綴,適用於 C 字串)。

常見問題

為什麼像 é 這樣的字會輸出兩個八進位數?
ASCII 0-127 範圍以外的字元在 UTF-8 中佔多個位元組。é 對應 0xC3 0xA9 兩個位元組,工具會輸出 303 251。純英文字母則永遠只佔一個位元組。
補零和不補零差在哪裡?
補零讓每個位元組都固定三位(空格寫成 040 而非 40),與 C 語言 \\NNN 轉義語法的固定寬度對得起來。不補零較短,但在程式碼裡容易與後面的數字黏在一起造成歧義。
前綴樣式(\110、0o110、%110)有什麼用?
它們會把每個八進位值包起來,方便直接貼進程式碼。反斜線(\110\145…)適用於 C、C++ 與 shell 字串字面量,編譯後會還原成原文。0o110 是 Python 與 JavaScript 中可直接執行的八進位字面量。%110 採用百分號寫法,方便和 URL 編碼值對照。選 None 就是一串純粹、可讀的數字。
這跟 chmod 的權限數字是同一回事嗎?
都是八進位,但 chmod 編碼的是位元旗標,每位代表一組使用者的讀、寫、執行權限,本質上在表達位元而非字元。
我能直接貼上 od 或 hexdump 輸出的八進位來解碼嗎?
可以。切到反向模式後,將八進位組以空格、逗號、換行分隔,或保留反斜線,都能順利解析。工具會重建包含 UTF-8 多位元組序列的原文。若某組出現數字 8 或 9,或在 UTF-8 模式下超過 0377,會即時標示出來,方便修正貼上錯誤。

相關工具