x-hw / amazing-qr

💮 amazing QRCode generator in Python (supporting animated gif) - Python amazing 二维码生成器(支持 gif 动态图片二维码)
GNU General Public License v3.0
10.39k stars 1.56k forks source link

一个在线演示网站 支持中文英文混编 供参考 #52

Open jwenjian opened 5 years ago

jwenjian commented 5 years ago

image

  1. 支持中文
  2. 支持中文英文混编

对源码做了修改, 贴出来项目地址, 供大家参考, GPLv3 协议.

项目地址: https://github.com/jwenjian/awesome-qrcode 在线演示: https://wenjian.pythonanywhere.com/

输入中文, 英文混编试试 :tada:

主要修改:

  1. 将输入内容进行编码转换: utf16 -> utf8 #

    def utf16to8(input_txt: str) -> str:
    out = []
    for idx in range(len(input_txt)):
        ch = ord(input_txt[idx])
        if 0x0001 <= ch <= 0x007f:
            out.append(input_txt[idx])
        elif ch > 0x07ff:
            out.append(chr(0xE0 | (ch >> 12 & 0x0F)))
            out.append(chr(0x80 | (ch >> 6 & 0x3F)))
            out.append(chr(0x80 | (ch >> 0 & 0x3F)))
        else:
            out.append(chr(0xC0 | (ch >> 6) & 0x1f))
            out.append(chr(0x80 | (ch >> 0) & 0x3f))
    
    return ''.join(out)
version, level, qr_name = myqr.run(utf16to8(text), save_name=target_filename)
  1. 去掉源代码中对输入字符的支持判断(比较暴力, 仅供参考)
    if not isinstance(words, str):
        raise ValueError('Wrong words! Words must be a str instance!')