掃描二維碼顯示問號
public static void main(String[] args) {
int width = 300;
int height = 300;
String format = "png";
//String contents = "http://wx.xingxingbaobei.net/wx/product/index";
String contents = "我是你大爺";
//定義二維碼的參數
HashMap hints = new HashMap();?
hints.put(EncodeHintType.CHARACTER_SET, "utf-8");
hints.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.M);
hints.put(EncodeHintType.MARGIN, 2);
try {
BitMatrix bitMatrix = new MultiFormatWriter().encode(contents, BarcodeFormat.QR_CODE, width, height);
Path file = new File("F:/code/img.png").toPath();
MatrixToImageWriter.writeToPath(bitMatrix, format, file);
?
} catch (WriterException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
這樣子生成出來的二維碼掃描顯示的是問號,有多少個中文就有多少問號,這是怎么回事嘞?
2018-07-16
//定義二維碼的參數
HashMap hints = new HashMap();?
//hints.put(EncodeHintType.CHARACTER_SET, "utf-8");
hints.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.M);
hints.put(EncodeHintType.MARGIN, 2);
try {
contents = new String(contents.getBytes("UTF-8"),"iso-8859-1");
BitMatrix bitMatrix = new MultiFormatWriter().encode(contents, BarcodeFormat.QR_CODE, width, height);
Path file = new File("F:/code/img.png").toPath();
MatrixToImageWriter.writeToPath(bitMatrix, format, file);
?
} catch (WriterException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
這樣子就可以咯