QR Code 產生器

19 / 2331 位元組
錯誤修正等級
15% 可修復
版本 2 · 25×25 模組

您輸入的內容不會被儲存、記錄或分享。

為網址、文字或 Wi-Fi 產生 QR code,並下載為 PNG 或 SVG。所有處理都在瀏覽器中完成,不會上傳,產生的 code 也永不失效。

使用方式

  1. 輸入要編碼的網址或文字。
  2. 視需要調整錯誤修正等級、顏色與留白。
  3. 文件用途下載 PNG,印刷用途下載 SVG。

圖案裡實際有什麼

QR 碼是具有固定結構的模組方格。三個角落的大方塊是定位圖案,讓掃描器在任何角度都能找到條碼並判斷方向。較大的版本中會出現較小的對齊圖案,用來校正在曲面或傾斜表面上拍攝時的變形。定位圖案之間的虛線是時序圖案,讓掃描器掌握模組方格。定位圖案周圍則是格式資訊,記錄了錯誤修正等級與遮罩。

其餘部分都是交錯排列的資料與錯誤修正碼。共有 40 個版本,從 21×21 模組到 177×177 模組,系統會自動選擇能容納內容的最小版本,這就是為什麼你一邊輸入,條碼會明顯變得越來越密。

編碼模式比多數人以為的更重要。數字模式每個數字約 3.3 位元,英數模式每個字元約 5.5 位元,但英數字元集只有大寫字母與少數符號。其他內容都會退回每字元 8 位元的位元組模式,中文這類多位元組字元則會用掉更多位元。這就是為什麼 HTTPS://EXAMPLE.COM/PATH 產生的條碼,比同一個網址寫成小寫時明顯簡單:通訊協定與主機名稱不分大小寫,所以改成大寫不會有影響,而差距可能就是一兩個版本。

做出能穩定掃描的條碼

保留靜區。規格要求四邊都要有四個模組寬的空白,為了排版而把它去掉,是印刷條碼無法掃描最常見的單一原因。掃描器靠這塊空白才能找到條碼。

保持明暗方向。淺色背景上的深色模組是所有掃描器預期的樣子;反色的條碼有些掃描器讀得出來,有些讀不出來。維持高對比,避免在模組後面放漸層或照片背景;如果要上色,請改變深色的色相,而不是把它調淺。

依照距離決定大小。實用的經驗法則是條碼寬度約為掃描距離的十分之一,所以手機拿在 30 公分處時約需 3 公分;至於要從房間另一端讀取的海報,需要的尺寸遠比一般人以為的大。印刷時,別讓模組小於約 0.4 公釐,並檢查實際印出來的成品,而不是螢幕上的打樣。

如果要在中間放 Logo,請先把錯誤修正等級提高到 H。這會保留約 30% 的冗餘,用來彌補被遮住的區域;但 Logo 仍須遠離定位圖案,而且在印一千份之前,值得先用兩三支不同的手機掃描測試。

內容格式

QR 碼承載的是文字,掃描器如何處理這段文字取決於慣例。網址會被開啟;其他內容除非符合已知格式,通常都只會顯示為純文字。

Wi-Fi 使用 WIFI:T:WPA;S:網路名稱;P:密碼;; 的格式,T 可設為 WPA、WEP 或 nopass。注意分號是必要的,網路名稱或密碼中的特殊字元需要用反斜線跳脫。電話號碼用 tel:,電子郵件用 mailto:,並以一般的查詢語法指定主旨與內文,位置則用 geo: 加上緯度與經度。聯絡資訊使用 vCard,雖然冗長,但支援度非常廣。

任何依賴特定 App 協定的內容,都只能在安裝了該 App 的裝置上運作。這就是為什麼一個會轉址的普通 https 網址,通常比花俏的自訂協定更可靠。

靜態碼與動態碼

這裡產生的是靜態碼:你的內容直接編碼在模組中。它永遠有效、離線也能用、不依賴任何服務,也不會向任何人回報任何資訊。但它也無法修改:如果它指向的網址搬家了,所有印出去的條碼都會失效。

動態碼的解法是編碼一個由服務商擁有的短轉址網址,服務商再把它轉到你目前指定的目的地,並在過程中統計掃描次數。對於目的地會變動的行銷活動,這確實很有用;但也值得清楚它的代價:服務商能看到每一次掃描,帳號到期或服務關閉時條碼就會失效,而且許多免費產生器會在沒有告知的情況下,悄悄產生動態碼。

如果你需要這種彈性,誠實的做法是用靜態碼指向你自己掌控的網域上的短網址,並在伺服器端轉址。你保有更改目的地的能力,而且中間沒有任何第三方。

錯誤更正如何讓受損的條碼仍然掃得出來

QR code 使用 Reed-Solomon 編碼,這與當年保護 CD 上資料、也用於深太空通訊的那一族錯誤更正碼相同。它的想法是把資料視為一個多項式的係數,並多傳送這條曲線上的一些點,只要存活下來的點夠多,原始資料就能被完整還原。

可用的等級有四種。L 可復原約 7% 的碼字,M 約 15%,Q 約 25%,H 約 30%,而且這些冗餘是分散在整個符號中,而非集中在一處,這就是為什麼某一角落受損通常無傷大雅。提高等級不會讓條碼在良好環境下更容易讀取,而是讓它能在更糟的條件下存活,代價是同樣的內容會換來更密的圖樣。

螢幕顯示或乾淨印刷時,M 是合理的預設值。H 適用於印在曲面、會受風吹日曬雨淋,或有一部分被標誌遮住的條碼。提高等級會增加模組數量,因此一個長網址的 H 等級條碼,會比同內容的 M 等級明顯更細密,若印刷尺寸固定,這反而對你不利。

容量,以及為什麼縮短內容有幫助

容量取決於版本、錯誤更正等級與編碼模式三者的組合。在版本 10,也就是 57 乘 57 的方格,搭配 M 等級更正時,一個條碼大約可容納 271 個英數字元或 213 個位元組。到了最高的版本 40,數字會來到數千,但那麼大的符號既不好印,掃描也慢。

編碼模式是多數人忽略的關鍵槓桿。純數字內容大約每位數 3.3 位元,英數模式每字元 5.5 位元,其餘一律退回到每字元 8 位元。英數字元集包含大寫字母、數字和九個符號,所以 HTTPS://EXAMPLE.COM/PATH 的編碼效率遠高於小寫寫法;而且協定與主機名稱不分大小寫,改成大寫不會有任何損失。

另一個槓桿是縮短網址,而且它比上述一切都更早發揮作用:字元變少代表版本更低、在相同印刷尺寸下模組更大,條碼也就能在更遠的距離和更差的光線下被掃到。

Quishing,以及掃描器應該顯示什麼

對掃描的人來說,QR code 的內容是看不見的。這正是如今所謂 quishing 的全部基礎:貼在停車收費表和餐廳桌面正版條碼之上的貼紙、電子郵件中因為是圖片而繞過連結掃描的條碼,以及海報上導向做得很像的付款頁面的條碼。

防禦手段其實平淡無奇。選一個會在開啟前先預覽網址的掃描器是值得的,而目前的手機相機都會這麼做。要看網域而不是看頁面,因為付款頁面複製起來輕而易舉。對於看起來像是貼上去、蓋住底下東西的實體條碼要保持警覺,近距離看時,貼在印刷條碼上的貼紙就是那個樣子。

對於發布條碼的人來說,相對應的做法是讓它指向一個大家認得出是你的網域,而不是短網址服務,這樣預覽才有意義。一個解析到隨機短網域的條碼,和攻擊者做的條碼完全無法區分。

在不把條碼交給別人的情況下追蹤掃描

由服務商提供的動態條碼是計算掃描次數與更換目的地的常見做法,而代價是實實在在的:服務商看得到每一次掃描、帳戶失效條碼就不能用了,而且有些免費產生器會在不告知的情況下產出動態條碼,這代表你印出去的條碼,依賴著一個你從未選擇要依賴的服務。

由你自己掌控的版本,是一個指向你自家網域某個短路徑的靜態條碼,並在你自己的伺服器上做轉址。要換目的地只是改設定,分析資料落在你自己的記錄裡,途中沒有其他人。為每一檔活動配一個獨立路徑,就能得到那種按張貼地點分開計數的資料,而那通常正是大家購買動態條碼的原因。

無論採用哪種方式,條碼本身從不回報任何東西。掃描是在目的地被請求時才被計算,也就是說,一張印在海報上的條碼被拍下卻從未開啟,就等於不存在;而任何手動輸入網址的人,計算方式和使用掃描器的人完全一樣。

送印之前的檢查清單

要測試實際成品,而不是設計稿。用最終尺寸、在預定的材質上把條碼印出來,並用至少三支手機掃描,其中包含一支較舊的 Android。也要在條碼實際所在的光線條件下測試,昏暗酒吧深色牆面上的條碼,和同一個條碼放在桌上,完全是兩回事。

確認留白區在版面中沒有被吃掉。四周各留四個模組寬的空白是規格上的要求,而印出來的條碼失效最常見的原因,就是設計師為了讓版面好看,把文字或邊框推進了那圈邊界。

開印前先確認目的地,印完之後也要讓它持續可用。條碼的壽命會超過催生它的那檔活動:當到達頁下架時,它指向的網址應該做轉址而不是回應 404,因為印出來的條碼無法再編輯,而它的複本會流通好幾年。

常見問題

這個 code 之後會失效嗎?
不會。資料直接編碼在圖形中,因此永久有效,也不需要任何服務持續運作。許多免費產生器提供的是指向自家轉址網址的 code,藉此追蹤掃描次數,一旦帳號失效或要求付費方案就可能無法使用。本工具不會轉址到任何地方。
錯誤修正等級會改變什麼?
它決定 code 有多少部分被遮蔽或損壞仍能讀取:L 約 7%、M 約 15%、Q 約 25%、H 約 30%。等級越高,相同資料所需的圖形越密。若打算在中間放上標誌請用 H;若使用環境乾淨且希望圖形單純則用 L。
為什麼文字變多後 code 變密了?
QR code 有 40 種版本,從 21×21 到 177×177 模組,系統會自動選擇能容納資料的最小版本,因此內容越長格線越密。縮短網址通常是維持易掃描性的最好方法。
應該下載 PNG 還是 SVG?
簡報、文件等一般影像用途請選 PNG。印刷與大尺寸輸出請選 SVG,因為它是向量格式,放大後依然清晰。
為什麼要保留周圍的留白?
規格要求四邊各留四個模組的空白。掃描器靠這段留白定位 code,把它去掉是印刷 code 無法讀取最常見的原因之一。
可以處理中文等非拉丁文字嗎?
可以。內容以 UTF-8 編碼,因此中文、日文、韓文與表情符號都能正確往返。有些產生器將位元組當成 Latin-1 處理,會讓這些文字悄悄變成亂碼。

最後更新:

回報問題

請提供操作步驟、預期結果及實際結果。請移除機密與個人資料。

相關工具