此代码为何不支持中文呀,求大神解

xcw484 2019-01-21 07:21:05
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);
}


}

这个是我看一个博主过来的,可是生成的二维码赋值中文,扫描出来就乱码,求大神指导
...全文
173 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
bcsflilong 2019-01-22
  • 打赏
  • 举报
回复

byte[] d = qrData.getBytes("gb2312");


改为

byte[] d = qrData.getBytes("UTF-8");


改为

67,512

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧