QR Code 裡面到底存了什麼?
QR Code(Quick Response Code,快速反應碼)是 1994 年由日本汽車零件廠商 Denso Wave 發明的二維條碼。
和傳統一維條碼(barcode)相比,QR Code 能放的資料多得多:最大的版本(177 × 177 格)在最低容錯率下可以放 4,296 個英數字元或 2,953 個位元組。中文以 UTF-8 編碼時一個字佔 3 個位元組,最多大約 980 個字,放整段網址、Wi-Fi 設定或聯絡資料都夠。台灣常見的例子有行動支付的收付款碼、餐廳菜單,還有電子發票證明聯上左右並列的兩個 QR Code。
圖案本身就是資料。那一格一格的黑白方塊(叫做模組)拼出來的是一串字面上的文字:一個網址、一行字、一組 Wi-Fi 連線資訊。掃描的當下不需要連上任何伺服器,讀取器先靠三個大角落方塊判斷方向,再讀格式區知道遮罩與容錯等級,剩下的就解碼成文字。版面、編碼方式與 Reed-Solomon 錯誤修正都寫在國際標準 ISO/IEC 18004 裡,所以在這裡做的碼,拿到哪一國買的手機都讀得出來。
這也是「靜態碼」與「動態碼」分家的地方。這一頁產的是靜態碼:你的網址直接編進黑白方塊裡,沒有人在中間統計掃描次數,碼能活多久取決於那個網址活多久。市面上多數商用產生器給的是動態碼,圖案裡其實是服務商自己的短網址,你換來可以改導向、可以看掃描統計,代價是多了一個依賴:試用期結束或那家公司收掉,所有已經印出去的碼會同時死掉,而且通常是在傳單都發完之後。
要做哪一種、容錯率選哪一級、下載哪一種檔
支援的 QR Code 類型
- 文字 / URL:最常見,把網址、訊息或任意文字編碼成 QR。
- Wi-Fi 連線:產生「拍一下自動連線」QR,含 SSID、密碼、加密類型(WPA / WEP / 無密碼),iOS / Android 相機都支援。
容錯率(Error Correction)
QR Code 內建 Reed-Solomon 錯誤修正機制,允許 QR 被髒污、撕損、遮蔽部分仍能掃描。共有四級:
- L(低,~7% 容錯):圖樣最稀疏,容量最大。乾淨環境用,例如螢幕上顯示。
- M(中,~15% 容錯):本工具預設,平衡選項。名片、傳單適用。
- Q(中高,~25% 容錯):戶外標示、可能被風雨弄髒的場景。
- H(高,~30% 容錯):戶外大型廣告、會被遮擋的場合(中央放 logo 設計也用這級)。
容錯等級越高,同樣的內容就要用更多模組來裝,圖案會變密,所以選了 Q 或 H 就要把印出來的尺寸一起放大。
下載 SVG 還是 PNG?
- SVG:只要會進印刷廠就選它。向量檔從名片放到 A0 海報都不會糊,之後還能改顏色、加 logo。
- PNG:簡報、Word 文件、email、聊天室貼圖用。256 到 2048 px 四個尺寸,投影片挑 1024、整頁文件挑 2048。
實戰教學:做一張海報或菜單用的網址 QR Code
- 類型維持文字 / URL,貼上完整網址,連 https:// 都帶上。只打網域多半也能用,完整寫出來比較保險。
- 先把長長的追蹤參數砍掉。內容每多一個字元就多幾個模組,印出來的尺寸不變的話,每一格方塊就更小更難掃。
- 選容錯率:室內菜單、傳單用 M,貼在玻璃門或戶外看板用 Q 或 H。
- 下載之前先用自己的手機掃一次螢幕上的預覽。
- 要印刷就下載 SVG,要放簡報或文件就下載 PNG。
- 白邊不要裁掉。標準要求四周留一圈靜空區,下載的檔案裡已經含了,為了排版好看把它切掉是印出來掃不到最常見的原因之一。
- 尺寸照閱讀距離抓。常見的估法是做成閱讀距離的十分之一:桌卡在 30 公分處讀大約 3 公分,海報在 3 公尺外讀大約 30 公分。
實戰教學:做一張給客人用的 Wi-Fi QR Code
- 類型切到 Wi-Fi 連線。
- Wi-Fi 名稱(SSID)照手機 Wi-Fi 清單上顯示的樣子一字不差地打,大小寫和空白都要一樣。那是網路名稱,不是路由器型號。
- 填密碼、選加密方式。WPA 這一項涵蓋 WPA、WPA2 與 WPA3,現役路由器幾乎都選它;WEP 只給非常舊的設備。選無密碼時密碼欄不會被編進碼裡。
- 路由器沒有廣播網路名稱的話,勾隱藏網路,碼裡會多帶一個欄位,手機才找得到它。
- 下載、列印。碼裡存的是 WIFI:T:WPA;S:網路名稱;P:密碼;; 這種字串,出自 ZXing 的條碼內容慣例,也是 iOS 與 Android 相機認得的格式。SSID 或密碼裡的分號、冒號、逗號、引號與反斜線會自動加上跳脫字元,所以密碼裡有 a;b:c 這種東西照樣掃得到。
- 把碼指向訪客網路,不要指向筆電和 NAS 所在的那一個。貼在牆上的碼等於一組任何人都能拍照帶走的密碼。密碼本身可以用「密碼產生器」產一組長一點、只有英數的,電視和遊戲主機才打得動。
下載、列印、放進文件或簡報裡
- SVG:用 Illustrator、Affinity Designer、Inkscape 或 Figma 打開都能改,改完不會失去銳利度。
- Word、Google 文件、PowerPoint、簡報:用 PNG 以插入圖片的方式放,這幾個軟體對 SVG 的支援程度不一。要輸出印刷用 PDF 前,記得把自動圖片壓縮關掉。
- 列印:用 100% 比例印、關掉「符合頁面大小」的縮放,黑色印在白底上,能選的話用霧面紙。亮面護貝的反光角度,剛好就是一般人拿手機掃的角度。
用什麼掃、什麼情況會掃不到
- iPhone:iOS 11(2017)以後內建相機 App 就支援,開相機對準即可,不用裝 App
- Android:多數機型的原生相機就能掃,或用 Google 智慧鏡頭
- 第三方掃描 App:能用內建相機就用內建,不必為了掃碼另外裝 App
- 桌機:螢幕上的 QR 可用手機拍螢幕掃,或用 Chrome 擴充功能
- LINE:台灣不少人是用 LINE 內建的行動條碼掃描器,而不是系統相機。它會用 LINE 自己的瀏覽器開啟連結,所以你的落地頁如果依賴一般瀏覽器才有的功能,在那裡的行為可能不一樣。
- Wi-Fi 碼:iOS 與 Android 都認得 WIFI: 開頭的字串,會直接問你要不要加入網路而不是開瀏覽器。Android 也能反過來從已儲存的網路自己產一張分享用的碼。
什麼情況會掃不到
尺寸配不上閱讀距離、白色靜空區被裁掉、對比太低(例如灰字印在米色紙上)、黑白對調成淺色圖案配深色底、亮面護貝反光、內容太長導致模組太細,還有鏡頭近到對不了焦。黑白對調是最陰險的一個:有些讀取器認得,多數不認。
印一千張之前先看這裡
靜態碼是公開的,而且印出去就改不了。任何人拍到它就能讀出裡面的內容,事後也沒辦法修改。網址一個字一個字核對過、印樣掃過,再送印。目的地有可能搬家的話,把碼指向一個你自己控制的網址,之後在自己的伺服器上改導向。
「複製分享連結」不帶 Wi-Fi 密碼。連結裡有網路名稱、加密方式這些設定,密碼一律不放:連結會被轉貼、留在聊天紀錄與瀏覽紀錄裡,放進去就等於把密碼寫在明處。對方打開連結後,要自己把密碼填上,碼才連得上。
掃的一方也有風險。在停車繳費機、餐廳桌角、公告欄上,把假貼紙蓋在真的碼上面,是實際發生過的詐騙手法。開啟之前先看一眼預覽裡的網域,對任何要你付款或登入的碼都多想一下。
無障礙。QR Code 對螢幕閱讀器來說是一張沒有內容的圖,沒有手機相機的人也用不了。旁邊把網址用文字印出來,菜單、票券這類非用不可的東西要保留一個看得懂的替代方案。
商標。QR Code 是 Denso Wave 的註冊商標,規格本身則是公開且可自由使用的。
常見問題
為什麼 QR Code 三個角有黑色方塊?
那是定位點(finder pattern),讓掃描器快速判斷 QR 的方向與旋轉角度。三個角各放一個,第四角刻意留空,所以無論 QR 是正放、倒放、側放都能掃。
中央可以放 logo 嗎?
可以,但容錯率要選 H。H 級大約能還原三成被遮住或損壞的資料,logo 蓋住的面積要明顯小於這個比例,也不能蓋到三個角的定位點;加完一定要實際掃過再印。本工具沒有內建 logo 嵌入,可以下載 SVG 後在 Figma 之類的軟體自己加。
QR Code 會過期嗎?這裡產的碼有次數或期限限制嗎?
不會過期,也沒有限制。這裡產的是靜態 QR Code,內容直接編在圖案裡,不經過本站轉址;免費、不用註冊、不限張數。只要印出來的圖沒有糊掉、它指向的網址還在,就一直掃得到。會過期的是動態 QR Code:圖案裡放的是服務商的短網址,試用期結束或服務停掉就跟著失效。
為什麼有時候掃不到?
最常見的原因是尺寸配不上掃描距離、四周的白邊被裁掉、對比太低(例如灰字印在米色紙上)、亮面護貝反光,或內容太長讓每一格太細。把黑白對調成淺色圖案配深色底也常掃不到,多數讀取器不認。鏡頭貼太近對不了焦時,把手機拿遠一點再試。
Wi-Fi QR Code 安全嗎?密碼會外洩嗎?
QR 圖是瀏覽器用 JavaScript 在你的裝置上畫出來的,輸入的 SSID 與密碼沒有經過任何網路傳輸。工具上的「複製分享連結」也不會把 Wi-Fi 密碼放進連結,對方打開後要自己填。真正要注意的是:貼在牆上的 Wi-Fi QR Code 等於把密碼公開展示,任何人拍一張照就帶走了,所以請指向訪客網路,並在人員異動時換掉。
資料來源
- ZXing 專案,Barcode Contents(WIFI: 欄位格式、隱藏網路的 H 欄位,以及反斜線、分號、逗號、引號與冒號要加跳脫的規則)。
- ISO/IEC 18004,QR Code 符號體系的國際標準:符號版本、四個容錯等級與背後的 Reed-Solomon 編碼,以及四個模組寬的靜空區。
- Denso Wave,Information capacity and versions of the QR Code(版本 40 為 177 × 177 格;容錯等級 L 時英數 4,296 字元、位元組模式 2,953 bytes)與Error correction feature(四個容錯等級)。
- 財政部財政資訊中心,電子發票證明聯一維及二維條碼規格說明(證明聯上的二維條碼「以 QR Code 記載,數量二個,以左右並列」;一維條碼則是三九碼)。
相關工具
- URL 編碼解碼
URL 編碼解碼:中文與特殊字元的百分比編碼雙向轉換,支援 encodeURI 與 encode…
- 顏色換算
HEX、RGB、HSL 三大色彩模型即時互轉,內建色彩挑選器(color picker),支援即時預覽與一鍵複製到剪貼簿。
- CSS 漸層產生器
CSS 漸層產生器:調出 linear、radial、conic 三種漸層,從預設庫挑一個再改色…
- 圖片轉 Base64
上傳圖片即時轉成 Base64 字串(含 Data URL 格式),直接貼進 HTML、CSS、…
- 圖片壓縮
上傳 JPG / PNG / WebP 圖片,調整品質與最大寬度,即時瀏覽器內壓縮並下載。
- 密碼產生器
用瀏覽器原生 crypto.getRandomValues() 產生密碼學等級的亂數密碼,可選長…
- 數字大寫轉換
阿拉伯數字轉中文大寫國字(壹貳參肆伍陸柒捌玖拾佰仟萬)。
隱私:QR Code 是瀏覽器用 JavaScript 在你的裝置上畫出來的,輸入的文字、網址、SSID 與 Wi-Fi 密碼都不會送到伺服器,也不會寫進網址,分析也不記錄任何你輸入的內容。唯一的例外是「複製分享連結」:按下去才會組出一條帶著你填的文字、網址或 SSID 的連結;Wi-Fi 密碼不會放進連結。
