什麼是 QR Code 讀取器?
QR Code 是由 ISO/IEC 18004 定義的二維矩陣條碼。它以黑白方形模組組成的網格來編碼文字、URL、聯絡卡、Wi-Fi 憑證及其他短資料,並附有 Reed-Solomon 錯誤更正資料,使符號在部分損壞或加入標誌覆蓋後仍能解碼。QR Code 讀取器執行相反的操作:接受 QR 符號的圖片並還原原始資料字串。此讀取器使用開源的 jsQR 函式庫(約 130 KB,MIT 授權)直接在瀏覽器中執行解碼流程。您拖曳、貼上或以相機掃描的圖片永遠不會離開分頁。沒有上傳步驟。在解碼時開啟開發者工具,網路面板保持靜默——頁面不會發出任何與您圖片內容相關的 XHR、fetch 或分析請求。
QR 解碼如何運作?
解碼完全在您的裝置上執行。每張圖片在返回資料字串之前都經過一個固定的流程:
- 圖片檔案(PNG、JPG、WebP 或相機影格)被繪製到螢幕外的 HTML
<canvas>上。Canvas API 以 RGBA 位元組陣列的形式返回原始像素資料。 - jsQR 函式庫將像素陣列轉換為灰階點陣圖,並掃描 QR 符號角落的三個特徵性定位圖案正方形。
- 找到定位圖案後,解碼器計算透視變換並提取完整的模組網格,將每個單元格讀取為二進位 0 或 1。
- 根據 QR 規格解析模組網格:先讀取格式和版本資訊,然後對資料模組進行去交錯並套用 Reed-Solomon 錯誤更正。
- 根據片段模式(數字、英數字、位元組或漢字)解碼更正後的資料碼字,得到原始資料字串。
- 此工具使用一組正規表示式嗅探資料以識別內容類型(URL、Wi-Fi 憑證、vCard 等),並以適當的操作按鈕顯示結果。
為什麼使用瀏覽器端的 QR 讀取器?
- 圖片位元組永遠不會離開您的裝置。貼上包含 Wi-Fi 密碼、內部開發 URL 或含有個人電話號碼的 vCard 的 QR Code,該內容始終留在您的筆記型電腦上。其他 QR 讀取器在遠端伺服器上執行解碼,需要您先上傳圖片——此工具不需要。
- 頁面載入後,解碼可離線工作。jsQR 函式庫存在於您的分頁中。您可以斷開 Wi-Fi,將 QR 圖片拖入頁面,仍然可以取得解碼結果——在飛機上、地下室或任何公司網路封鎖第三方掃描器的地方都很有用。
- 如果您的桌上型電腦或筆記型電腦有網路攝影機,可以將它對準印刷的 QR Code 進行讀取,無需安裝應用程式或解鎖手機。相機串流留在瀏覽器中,並在成功解碼後立即停止。
- 讀取器可識別 URL、Wi-Fi 連線字串、vCard、MeCard、mailto、SMS 和地理資料,並顯示相應的操作按鈕。開啟 URL、複製 Wi-Fi 密碼、儲存聯絡卡——無論 QR Code 實際包含什麼。
QR Code 讀取器的常見用途
任何需要在不用手機拍攝的情況下查看 QR Code 實際內容的場景:
- 偵錯您剛產生的 QR Code。貼上您的應用程式產生的 QR Code(或從旁邊的 QR Code 產生器截圖),並在傳送到印刷、包裝或海報之前確認編碼的 URL 或資料符合您的預期。
- 恢復 Wi-Fi 憑證。掃描路由器設定頁面、飯店歡迎卡或 Airbnb 房源照片中的 Wi-Fi QR Code,讀取器會以純文字返回 SSID、安全類型和密碼,方便複製到其他裝置。
- 稽核與無障礙。解碼掃描文件、產品標籤、會議名牌或社群貼文截圖上的 QR Code,以便將內容提取到試算表、合規記錄或輔助軟體中——當目標 URL 是稽核聲明的實際依據時特別有用。
解碼真實 QR Code 的過程是什麼樣子?
以咖啡館窗戶上印刷的 Wi-Fi QR Code 為例。符號背後,原始資料遵循 WIFI: URI 方案:WIFI:S:CafeGuest;T:WPA;P:espresso2026;H:false;;。拍攝符號照片,將圖片拖入上方的上傳區域,流程就開始了:canvas 讀取像素,jsQR 定位三個角落的定位圖案,透視變換校正網格,Reed-Solomon 修復任何眩光或壓縮損壞,位元組模式片段生成 URI 字串。讀取器嗅探前置詞 WIFI:,將類型標記為Wi-Fi,解析網路名稱為 CafeGuest,安全類型為 WPA,密碼為 espresso2026。複製按鈕將密碼放入剪貼簿,方便貼到作業系統的網路選擇器。對於包含 https://tools.ultim8soft.com 的純 URL QR Code,同樣的流程返回 URL 類型標記和一個開啟按鈕,在新分頁中導航到目標。無論哪種情況,唯一發生過網路連線的事情就是頁面載入本身——解碼是本地進行的。
此 QR Code 讀取器只做一件事:在您的瀏覽器中,無需伺服器介入,向您顯示 QR Code 所編碼的確切內容。拖曳圖片、從剪貼簿貼上,或讓網路攝影機執行,解碼內容及其類型將在不到一秒內顯示在螢幕上。圖片位元組不會被上傳。相機影格不會被錄製。解碼的資料不會經過任何人的日誌。當您需要雙向確認所編碼的內容就是其他人會看到的內容時,請搭配旁邊的 QR Code 產生器使用。
圖片會上傳到伺服器嗎?
不會。圖片被繪製到記憶體中的 HTML canvas 上,完全由在您分頁中執行的客戶端 JavaScript 解碼。您的圖片中沒有任何一個像素會被傳送到伺服器、記錄或儲存。您可以透過開啟開發者工具並在拖曳圖片時查看網路面板來確認這一點:沒有任何 XHR、fetch 或分析請求與檔案內容相關。
相機掃描如何運作?
當您啟用相機模式時,瀏覽器透過標準 getUserMedia API 請求存取您裝置相機的權限。視訊影格以最高 640×480 解析度擷取到螢幕外的 canvas 上,並交由 jsQR 解碼。每個影格在下一個到達時立即丟棄,相機串流在第一次成功解碼後停止。沒有影格被錄製,沒有影格被傳輸,且只有在您勾選切換按鈕時才會出現權限提示——而非頁面載入時。
為什麼某些 QR 內容會自動偵測為 Wi-Fi 或 vCard?
Wi-Fi 憑證的 QR 資料遵循 WIFI:S:ssid;T:type;P:password;; 格式,vCard 以 BEGIN:VCARD 開頭。此讀取器識別這些模式以及其他標準前置詞(mailto:、geo:、smsto:、MECARD:、https://),並自動標記內容類型,使操作按鈕符合您實際想對資料做的事情。
為什麼我的 QR Code 沒有掃描成功?
常見原因:圖片太小或解析度太低(約 100×100 px 是下限,300×300 以上可穩定掃描);符號有嚴重損壞或被標誌部分遮蔽且錯誤更正不足;靜默區(模組周圍的空白邊框)缺失或被裁剪;深色和淺色模組之間的對比度太低。對於相機模式,請改善光線或將 QR Code 移近鏡頭——jsQR 需要清晰解析各個模組才能鎖定定位圖案。