package xx;
import java.awt.Color;
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
 
import javax.imageio.ImageIO;
 
import jp.sourceforge.qrcode.QRCodeDecoder;
import jp.sourceforge.qrcode.data.QRCodeImage;
import jp.sourceforge.qrcode.exception.DecodingFailedException;
 
import com.swetake.util.Qrcode;
/**获取qrcode jar包 https://osdn.jp/projects/qrcode
 * 生成qrcode二维码
 * @author fangyi  
 *
 */
public class xx {
   public static void main(String[] args) throws  Exception {
Qrcode qrcode= new Qrcode();
qrcode.setQrcodeErrorCorrect('M');//纠错等级
qrcode.setQrcodeEncodeMode('B');//N代表数字 A代表字母   B代表其他
qrcode.setQrcodeVersion(7);//版本
String qrData ="哦";//二维码信息内容
int width=67+12*(7-1);
int height=67+12*(7-1);

BufferedImage bufferedImage = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
//画图工具
Graphics2D gs= bufferedImage.createGraphics();
//设置属性
gs.setBackground(Color.WHITE);
gs.setColor(Color.BLACK);
gs.clearRect(0, 0, width, height);
//填充

int pixoff=2;//偏移量
byte[] d = qrData.getBytes("gb2312");
if (0 < d.length && d.length<120) {
boolean[][] s = qrcode.calQrcode(d);
for (int i = 0; i < s.length; i++) {
for (int j = 0; j < s.length; j++) {
if(s[j][i]){
gs.fillRect(i*3+pixoff, j*3+pixoff, 3, 3);
}
}
}
}
//关闭资源,并保存文件
gs.dispose();
bufferedImage.flush();
ImageIO.write(bufferedImage, "png", new File("D:/qrcode.png"));//输出到指定地方
System.out.println(qrData);
}
}这个是我看一个博主过来的,可是生成的二维码赋值中文,扫描出来就乱码,求大神指导