一.使用3个jar包。
zxing-core-1.7.jar,zxing-j2se-1.7.jar,qrgen-1.2.jar
下载地址: http://download.csdn.net/detail/jiazhipeng12/8442665
public class Main {
/**
* 生成一个二维码
* @param args
* @throws UnsupportedEncodingException
*/
public static void main(String[] args) throws UnsupportedEncodingException {
String content="Fuck You";
ByteArrayOutputStream out = QRCode.from(content).to(ImageType.PNG).stream();
try {
FileOutputStream fout = new FileOutputStream(new File(
"C:fuck.jpg"));
fout.write(out.toByteArray());
fout.flush();
fout.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
二.servler生成URL的二维码
index.jsp
<body>
<form action="xian" method="get">
<p>Enter Text to create QR Code</p>
<input type="text" name="qrtext" />
<input type="submit" value="Generate QR Code" />
</form>
</body>
xian.servlert
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//response.setContentType("text/html");
String qrtext = request.getParameter("qrtext");
ByteArrayOutputStream out = QRCode.from(qrtext).to(ImageType.PNG).stream();
response.setContentType("p_w_picpath/png");
response.setContentLength(out.size());
OutputStream outStream = response.getOutputStream();
outStream.write(out.toByteArray());
outStream.flush();
outStream.close();
}
三。无法识别中文乱码的问题。
我网上搜素方法。修改zxing-core-1.7.jar包的com.google.zxing.qrcode.encoder.Encoder.java文件.修改如下:
static final String DEFAULT_BYTE_MODE_ENCODING = "UTF-8";
使用工具:http://download.csdn.net/detail/jiazhipeng12/8442743
然后使用cmd下的jar命令 jar cvf hello.jar com 重新编译成jar包