分享

Java Zxing生成二维码解决中文编码问题

 oskycar 2014-03-17
package com.charles.qrcode;

import java.io.File;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.List;

import com.charles.utils.DistanceUtil;
import com.google.zxing.BarcodeFormat;
import com.google.zxing.MultiFormatWriter;
import com.google.zxing.WriterException;
import com.google.zxing.client.j2se.MatrixToImageWriter;
import com.google.zxing.common.BitMatrix;
import com.google.zxing.qrcode.encoder.ByteMatrix;

public class CommonTest {

public static void main(String[] args) {

String str = "[美食拼图联盟商户 http://www./m.html][美食会员,一拍即享!]1";// 二维码内容
String path = "/Users/zhangqi/my_doc/TestProject/images/";

BitMatrix byteMatrix;
for (int i = 1; i <= 500; i++) {
try {
String str1 = str + i;
byteMatrix = new MultiFormatWriter().encode(
// str1.getBytes("UTF-8").toString(),
new String(str1.getBytes("UTF-8"), "ISO-8859-1"),
// str1,
BarcodeFormat.QR_CODE, 652, 652);

File file = new File(path + i + ".png");
MatrixToImageWriter.writeToFile(byteMatrix, "png", file);
} catch (IOException e) {
e.printStackTrace();
} catch (WriterException e1) {
e1.printStackTrace();
}
}
}
}
如果不做编码转换,生成的二维码大数软件识别不了,在此我以:新浪微博的二维码扫描作为标准。

备注:对于cpp版本的zxing,只需要加入iconv模块进行字符编码转换,将默认的gb2312转换到utf-8即可

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多