java 生成二维码

来源:互联网 发布:四分位数java 编辑:程序博客网 时间:2024/06/16 22:50

转载自此处

扫描二维码显示扫描的内容全是问号,怎么处理?

生成代码如下:

pom.xml添加依赖

 <!--二维码依赖-->        <dependency>            <groupId>net.glxn.qrgen</groupId>            <artifactId>javase</artifactId>            <version>2.0</version>        </dependency>

controller代码:

@RequestMapping("/testQr")    public String test(HttpServletRequest request,                       HttpServletResponse response){    String qrtext = request.getParameter("qrtext");    ByteArrayOutputStream out = QRCode.from(qrtext).to(ImageType.PNG).stream();    response.setContentType("image/png");    response.setContentLength(out.size());    response.setCharacterEncoding("UTF-8");//这是多余的,并不能解决扫描二维码信息是乱码的问题    OutputStream outStream = null;    try {        outStream = response.getOutputStream();        outStream.write(out.toByteArray());        outStream.flush();        outStream.close();    } catch (IOException e) {        e.printStackTrace();    }    return null;}

乱码解决,其实很简单,并不是在response.setCharacterEncoding,而是对strem加上限制

 ByteArrayOutputStream out = QRCode.from(content).to(ImageType.PNG).withCharset("utf-8").withSize(width,height).stream();
对stream的很多限制都是可以在.stream之前一直 .限制1.限制2.....