一個完全在瀏覽器中執行的剪貼簿檢視器替代方案,會讀取您已複製的文字、以多種不同方式計算數量,並將不可見的空白字元和行尾符號呈現為可見符號,而且無需安裝任何軟體。Clipboard Viewer 接受透過瀏覽器 Clipboard API 直接讀取剪貼簿,或手動貼上,然後立即回報同一段文字的 UTF-16 碼元、Unicode 碼點、UTF-8 位元組長度、邏輯行數、類詞語彙單元、空白字元,以及 JSON 有效性。同一段貼上的內容在這些計算下可能產生不同的總和,但底層並未損毀,因此一個可控的檢查介面能避免當複製的文字被放入原始碼、設定檔、資料庫欄位、殼層指令或網頁表單時突然冒出意外狀況。由於分析發生在當前的瀏覽器分頁中,您可以在文字出現問題時立即檢查剪貼簿內容,無需啟動笨重的桌面工具,也不必將可能敏感的內容(例如權杖、API 金鑰或客戶記錄)交給遠端服務。

選擇瀏覽器式的原生剪貼簿檢視器替代方案
作業系統長期以來都內建了自己的剪貼簿檢查工具。Windows 包含一個歷史上稱為 clipbrd.exe 的小程式,可顯示系統剪貼簿中目前唯一的單一項目;而許多第三方 Windows 工具則透過分頁呈現 CF_UNICODETEXT、CF_HTML、CF_BITMAP 及其他註冊格式,以處理圖片和豐富內容。macOS 和 Linux 發行版透過命令行工具和輕量檢視器公開剪貼簿,許多手機則透過浮動列僅顯示最近複製的片段。這些內建檢查工具回答的問題比大多數除錯工作階段實際需要的更為狹隘:剪貼簿上目前有什麼?以哪些格式存在?
瀏覽器式替代方案則回答一個不同且更實用的問題。它不問目前存在哪一種剪貼簿格式,而是問底層文字實際包含什麼。它將空白視為可見的證據而非不可見的狀態,將單一字串拆解為對程式碼和資料有意義的各種計數類型,並提供 JSON 健全性檢查,可在尾端逗號或不平衡的大括號抵達剖析器之前就加以攔截。由於此工具是一般的網頁,因此可以跟著您前往任何能開啟現代瀏覽器的裝置,包括 Chromebook、受限的工作站,以及永遠不會接受傳統剪貼簿工具的平板電腦。它沒有安裝程式、沒有原生相依項目,也沒有需要另外更新的二進位檔。
檢查隱藏字元與文字統計
工作流程刻意設計得很簡短,以便能融入正常的除錯循環中,而不至於變成一個獨立的小專案。
- 開啟 Clipboard Viewer,點擊 讀取剪貼簿,並核准瀏覽器要求剪貼簿讀取權限的提示,或略過提示,在 Windows 和 Linux 上用 Ctrl+V,或在 macOS 上用 Cmd+V,直接將文字貼到編輯器中。
- 直接在編輯器旁邊閱讀即時分析:字元碼元、Unicode 碼點、UTF-8 位元組長度、邏輯行數、類詞語彙單元、空白字元,以及 JSON 指示,都無需額外的提交步驟就會更新。
- 當隱藏格式可能是問題根源時,請啟用 顯示空格、Tab 與行尾符號;空格會呈現為置中的圓點,Tab 呈現為箭頭,而歸位字元和換行字元則以明確的符號顯示,但底下編輯器的值保持不變。
- 並排比較各項計數,或將修正後的版本貼到編輯器中,以精確查看是哪個字元變更了,以及總數如何變動。
- 檢查完畢後請清除編輯器,特別是當剪貼簿的文字包含密碼、工作階段權杖、客戶記錄,或任何您不希望殘留在元件狀態中的資料時。
每一步都將焦點維持在您所複製的同一段文字上,因此檢查反映的是真實的輸入,而非可能悄悄漏掉您正要除錯的關鍵字元的重新輸入近似值。
隱藏格式在真實工作流程中出錯之處
剪貼簿問題很少與您看得見的字元有關。一段悄悄混用 Tab 和空格的 YAML 縮排,在您的筆記型電腦上能通過剖析,卻在 CI 中被拒絕。從 Excel 貼上的一列 CSV 可能帶有破壞 Unix 管線的尾端歸位字元。從說明文件頁面複製的殼層指令結尾可能包含一個不斷行空格,因此終端機印出「command not found」卻沒有人看得出原因。從一個殼層匯出、由另一個殼層讀取的環境變數,可能帶著一個隱形的零寬度接合字元存活過這趟轉移,卻在程式碼的相等性檢查中造成毀損。如果唯一的回饋只是「字串長度:12」,這些問題都不會浮現。
同樣的問題也會出現在原始碼本身。從聊天視窗貼上的字串字面值可能帶有智慧型引號,編譯器無法將其對應到一般的 ASCII 撇號。從網路搜尋複製的函式名稱可能帶有零寬度空格,linter 能接受但直譯器會拒絕。從檔案管理員複製的路徑可能含有軟連字號,只有在路徑被記錄時才會出問題。將空格、Tab、歸位字元與換行字元轉為可見符號,正是讓這些故障在數秒內就能診斷出來,而非在好幾輪的猜測之後才找出原因。
理解計數:UTF-16、碼點與 UTF-8 位元組
此工具會對同一段文字回報三種不同的長度值,因為在不同的情境下,三種不同的量測各有其用。JavaScript 內建的字串長度計算的是 UTF-16 碼元,這就是為什麼像「🚀」這樣的字串長度是 2,雖然它代表的是單一的火箭表情符號。碼點計數在內部使用 Array.from,並將每個 Unicode 純量值視為一個項目,因此同一段字串的碼點計數為 1。UTF-8 位元組長度則透過瀏覽器原生的 TextEncoder 計算,結果為 4 位元組,這正是同一個字元在 HTTP、檔案儲存或大多數網路通訊協定編碼時所占的空間。
| 計數 | 量測內容 | 適用情境 |
|---|---|---|
| UTF-16 碼元 | JavaScript 字串長度 | 與程式碼中的 str.length 進行比較 |
| Unicode 碼點 | 不同的 Unicode 純量值 | 計算表情符號與輔助字元 |
| UTF-8 位元組 | 編碼後的位元組長度 | 預估檔案大小、網路傳輸量或資料庫欄位寬度 |
| 邏輯行數 | 依 LF、CRLF 或獨立 CR 切分 | 跨 Windows、macOS 與 Linux 比較行數 |
| 類詞語彙單元 | Unicode 字母、數字、撇號、底線、連字號 | 實用的可讀性與檢查輔助 |
這三種長度值對同一輸入完全可以出現分歧,而這種分歧是資訊而非損毀。行數也是如此:檢查器將 LF、CRLF 與獨立 CR 都視為行尾符號,因此只要每一行保留可辨識的終止符號,在作業系統之間搬移的文字檔會回報相同的邏輯行數。字數計算雖然能識別 Unicode,但屬於實用性質而非語言學嚴格定義,因此可作為快速檢查的輔助,而非針對特定自然語言如何切分段落做出權威判斷。
瀏覽器內工具的隱私、權限與限制
此工具背後的設計約束是隱私。分析在當前的瀏覽器分頁中執行,不會將任何剪貼簿文字提交到 Lizely 伺服器,而清除編輯器會將工作值從元件狀態中移除。實作採用標準瀏覽器基礎元件而非自訂後端,因此每個計數的來源都可被稽核:TextEncoder 用於 UTF-8 大小、Array.from 用於碼點、明確的 CRLF/CR/LF 切分用於行數、Unicode 感知的詞彙比對用於字詞,而 JSON.parse 用於語法分類。隱形字元檢視是一種可逆的顯示對應,絕不會改寫底下的編輯器值,因此將其關閉即可逐位元組還原原始文字。
不過,此工具僅讀取文字。它不會嘗試公開剪貼簿中的圖片、豐富 HTML、檔案或平台特定格式,而空白的或非文字的剪貼簿只會產生空字串。輸入額度上限可防止意外貼上過大內容而凍結介面,而 JSON 指示會對去除空白後的文字執行嚴格的 JSON.parse 檢查,不會修補輸入、不會執行任何程式碼、不會追蹤連結,也不會解讀貼上的 HTML。綠色的 JSON 指示僅代表去除空白後的值在語法上是有效的 JSON,並不代表其欄位是安全、正確或可執行的。
當直接讀取剪貼簿被封鎖時
直接讀取剪貼簿屬於受保護的瀏覽器功能,相關要求明載於 W3C Clipboard API 規範以及 Clipboard.readText 的 MDN 說明文件。實際上,直接讀取通常需要 HTTPS 頁面、聚焦的分頁、按鈕點擊之類的使用者手勢,以及明確的權限授。即使這四項條件都到位,請求仍可能因使用者設定、企業政策、嵌入頁面限制,或較舊瀏覽器不支援的 API 介面而被拒絕。
被拒絕並不會被視為資料遺失。工具會顯示清楚的訊息,而一般的貼上路線仍可透過 Ctrl+V 或 Cmd+V 進入編輯器,有時候這反而更理想,因為手動貼上讓您能精確掌控進入頁面的字元。相同的後備機制也適用於瀏覽器 Clipboard API 可能完全不支援的手機與平板。對於密碼、API 權杖或個人記錄等敏感內容,手動貼上搭配隨即清除編輯器是較安全的預設做法,因為剪貼簿本身可能帶著自上次清除以來您所複製的任何內容。
如需更深入的了解,請參閱 Cron Parser API 替代方案:在瀏覽器中本機驗證。
如需更深入的了解,請參閱 Border Radius Generator API 替代方案,適用於本機 CSS。