扫描二维码显示扫描的内容全是问号,怎么处理?
生成代码如下:
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.....