跳到正文
DevTools / 二维码生成器

二维码生成器

二维码是连接物理世界与数字世界最短的路径,而决定它能否奏效的往往是细节:纠错级别决定了二维码被遮挡多少还能扫描,静默区是许多生成器会省略、而许多扫描器却必需的留白,而载荷格式决定了扫码后是打开一个网址还是仅仅显示一串字符。本生成器覆盖常见载荷类型,可按任意尺寸和可配置留白渲染,支持中心 Logo 并明确说明它对纠错的影响,还能解码上传的截图,用来检查别人生成的二维码。

完全在浏览器本地运行——不会上传任何内容。

载荷 — 17 字节

解码二维码

或将文件拖到此处

L L — 约 7% · M M — 约 15% · Q · H H — 约 30%

中心 Logo

工作原理

二维码是由黑白方块(模块)构成的二维网格,四角中的三个大方块是定位图案,让扫描器能够确定方向和缩放比例。数据使用 Reed-Solomon 纠错编码,附加冗余码字,使受损或被部分遮挡的符号依然可被解码。纠错分为四级:L 可恢复约 7% 的符号,M 约 15%,Q 约 25%,H 约 30%。级别越高冗余越多,相同载荷就需要更多模块,于是码更密、扫描时需要的空间也更大。

载荷本质上就是文本,而这段文本的格式赋予了二维码行为。普通网址会打开浏览器;以 WIFI: 开头并带上正确字段的字符串会加入某个网络;vCard 载荷在扫描时会添加一个联系人。联系人既有 MECARD 也有 vCard 两种格式,二者并非在所有扫描器上都能互换。字段值必须转义:Wi-Fi 密码或联系人姓名里的分号、逗号或反斜杠会提前终止字段,产生一个扫出来是乱码的二维码——因此本工具会自动转义,而不把这件事留给使用者。

容量是塑造其他所有决策的约束。二维码符号最大为 177×177 模块(版本 40),可承载的数据量取决于纠错级别和字符集:数字最紧凑,然后是字母数字,再是字节,最后是汉字。实践中约 100 个字符的网址在 M 级下可以轻松容纳,而 500 个字符的载荷会产生一个非常密集的码,手机摄像头在屏幕或打印标签上很难分辨。短一点总是更好,长链接用短链服务往往才是正确答案。

扫描可靠性既是物理问题也是数字问题。静默区——符号周围的空白边距,规范要求为四个模块宽——是标准强制要求的,也是设计糟糕的海报最先去掉的东西。对比度比颜色更重要:深色模块配浅色背景扫描最可靠,而反色二维码在部分扫描器上可用、在另一些上不可用。把 Logo 放在中心会覆盖模块,因此只应在 Q 或 H 级使用,且 Logo 宽度不应超过整体的四分之一。

常见应用场景

  • 把 Wi-Fi 账号印在卡片上,让访客无需手输密码即可接入。
  • 为会议胸牌或名片生成联系人二维码。
  • 为餐厅菜单、商品页或应用下载链接生成二维码。
  • 把位置或带起止时间的日程编码进海报。
  • 先解码截图中的二维码,确认它到底指向哪里再决定是否扫描。
  • 生成 SVG 格式的二维码用于大尺寸印刷,避免位图放大后的锯齿。

最后更新: 2026-10-14

常见问题解答

应该选择哪个纠错级别?

M 级是常用的默认值,兼顾密度与稳健性。当二维码会印在曲面或反光表面上、可能被部分遮挡,或者你要在中心放 Logo 时,选 Q 或 H。只有在载荷很长且扫描条件良好时才用 L,因为它产生的码最稀疏。更高的级别对同样的数据总是意味着更密的符号,这是一个真实的取舍:密到无法被可靠分辨的二维码,比稍微不那么稳健的更糟。

应该在中心加 Logo 吗?

只有在纠错级别为 Q 或 H、且 Logo 覆盖宽度不超过四分之一时才加。Logo 会覆盖数据模块,而纠错正是让扫描器能够重建它们的原因;在 L 级下,冗余连日常磨损都 barely 够用,更不用说刻意挖出的空洞。让 Logo 远离三个角的定位图案,那是扫描器确定方向时必须完整的部分,并且务必在开印之前用多部手机测试实际打印效果。

二维码周围的留白为什么重要?

因为规范要求四周各留出四个模块宽——即四个小方块的宽度——的空白,扫描器依赖它把符号与周围环境区分开。没有留白,扫描器可能找不到二维码的边界,或者把附近的文字、边框误认为符号的一部分。许多生成器默认不留边距以求图片看起来更整齐,这就是同一个码在屏幕上能用、印到花哨海报上却失效的原因。本工具提供可配置的留白并默认使用规范要求的四个模块。

不用手机也能扫描二维码吗?

可以——上传截图或包含二维码的图片,它会在浏览器中就地解码,显示出确切的载荷,包括其中的 Wi-Fi 密码或网址。在扫描来历不明的二维码之前先做这一步很有价值,因为你无需访问它所指向的地址就能看到内容。解码通过摄像头路径使用的同一套图像 API 在本地完成,图片不会被上传。

相关工具