Unicode 文本換行與排版
按字素、詞語或顯示列換行,支持中文與 emoji 寬度、製表位和準確的 LF/CRLF 下載。
選擇正確單位
字素模式只在 Unicode 字符簇邊界換行,不拆開組合重音、連接 emoji 或旗幟。詞語模式優先使用 Intl.Segmenter 詞邊界,以字素計寬。顯示列模式使用 string-width 8.3,常見中文和 emoji 通常佔兩列;模糊寬度字符可按窄或寬處理。
製表符、段落與超長詞
換行前先按顯示列製表位把製表符展開為空格。默認保留原始換行;開啟合併軟換行後,會修剪併合並以空行分隔的段內各行。新增詞邊界換行處的空格會丟棄。超長詞可按字素拆分,也可保留並報告超寬;單個字素已寬於列限制時會報錯,不強行拆開。
複製與下載保留所選換行
瀏覽器可能把預覽文本框中的 CRLF 顯示為 LF,但複製與下載使用原始結果,保留所選換行。顯示列是近似終端寬度,並非比例字體的像素寬度。工具拒絕控制序列,輸入上限為 200,000 個 UTF-16 單位,輸出上限為 1,000,000。
常見問題
為什麼中文可能比英文更早換行?
顯示列模式下,常見漢字佔兩列,拉丁字母通常佔一列。希望每個可見字符簇都計一單位時,請選擇字素模式。
這是 Markdown 或代碼格式化器嗎?
不是。它處理純文本,可能改變縮進或段落佈局,不理解代碼語法、Markdown 圍欄或表格結構。
輸入會上傳或保存嗎?
不會。處理在本機 Web Worker 中進行,不向 API 上傳文本,也不寫入本地存儲。更改選項會取消舊任務並清除舊結果。
其他語言
參考資料
我們如何確保結果正確
我們使用以下自動化測試驗證此工具。下方保留測試案例的原始名稱,方便查看實際斷言及重現。
- 驗證方法
- 檢查單詞、段落、空行和字素模式,確保 emoji、代理對和組合字符不被拆斷。
- 對比依據
- 固定文本樣本與字素邊界斷言。
- 驗證範圍
- 只覆蓋這些樣本和邊界;不代表所有輸入均已證明正確。
測試原始碼與案例(點選檔名檢視)
-
text-wrap-tools.test.js
- word wrapping preserves words, original paragraphs and blank lines
- grapheme mode never splits ZWJ emoji, surrogate pairs or combining sequences
這些測試涵蓋列出的樣本和邊界,不代表所有輸入都已證明正確。往返測試和使用同一依賴套件的檢查,不屬於獨立交叉驗證。