Java implementiert verschiedene Methoden zum Generieren von QR -Codes wie folgt:
1: Generieren Sie den QR -Code im Java -Projekt mit Swetakeqrcode
http://swetake.com/qr/ herunterladen Adresse
Oder http://sourceforge.jp/projects/qrcode/downloads/28391/qrcode.zip
Dies wird vom Japaner geschrieben und generiert den quadratischen QR -Code, den wir üblicherweise verwenden.
Kann in Chinesisch verwendet werden
Zum Beispiel: 5677777ghjjjjjj
2: Verwenden Sie Barcode4J, um Barcode- und QR -Code zu generieren
Barcode4J URL: http://sourceforge.net/projects/barcode4j/
BarCode4J ist ein QR -Code -Generierungsalgorithmus mit Datamatrix, der den QR -Algorithmus unterstützt
Datamatrix ist ein Standard in Europa und Amerika, und QR ist ein Standard in Japan.
Barcode4J wird normalerweise als rechteckig erzeugt
Zum Beispiel: 88777alec000yan
3: Zxing
Zxing Dies stammt von Google
Download -Adresse: http://code.google.com/p/zxing/downloads/List
Java -Code:
Import Java.io.file; import Java.util.hashtable; import com.google.zxing.barcodeFormat; import com.google.zxing.codeHintType; import com.google.zxing.multiformatwriter; import com.google.zxing.client.j2se.matrixtoimageWriter; import com.google.zxing.common.bitmatrix; import com.google.zxing.qrcode.qrcodewriter; public class QrCodeeVents {public static void main (String [] args) löst Ausnahme aus {String text = "Hallo"; int width = 100; int Höhe = 100; String format = "png"; Hashtable Tipps = new Hashtable (); Hints.put (EncodehintType.character_set, "utf-8"); Bitmatrix bitmatrix = new multiformatwriter (). Codieren (text, barcodeFormat.qr_code, width, Höhe, Hinweise); Datei outputFile = new Datei ("new.png"); MatrixtoimageWriter.Writetofile (Bitmatrix, Format, Ausgabefile); }}4: Es gibt eine Möglichkeit, QR -Code in der Google -Diagramm -API zu implementieren
Verwenden Sie mit dieser API Google Appengine, um sie zu implementieren.
5: JS generiert QR -Code
Generieren Sie den QR-Code mit Jquery-QRCode
Lassen Sie uns kurz über JQuery-Qrcode sprechen, einer Open-Source-Bibliothek (kann von https://github.com/jeromeetienne/jquery-qrcode erhalten werden).
QRCode.js ist die Kernklasse, die die Berechnung der QR -Codedaten implementiert.
jQuery.qrcode.js fasst es in die jQuery -Methode zusammen und verwendet es, um das grafische Rendering zu realisieren, was tatsächlich zeichnet (unterstützt zwei Arten von Leinwand und Tabelle)
Die wichtigsten unterstützten Funktionen sind:
JS -Code:
Text: "https://github.com/jeromeetienne/jquery-qrcode" // den QR-Code-Inhalt festlegen
JS -Code:
Rendern: "Canvas", // Rendering -Modus Breite einstellen: 256, // Breite Höhe festlegen: 256, // Höhenhöhe TypeNumber: -1, // Berechnungsmodus KorrekturLevel: QrErrorCorrectLevel
Die Verwendung ist sehr einfach
JS -Code:
jQuery ('#output').Nach einfacher Übung,
Die Rendering -Leistung unter Verwendung der Canvas -Methode ist immer noch sehr gut, aber wenn Sie die Tabellenmethode verwenden, ist die Leistung nicht ideal, insbesondere für Browser unten IE9.
Tatsächlich hat der oben genannte JS einen kleinen Nachteil, das heißt, es unterstützt chinesische standardmäßig keine Chinesen.
Dies hat etwas mit dem JS -Mechanismus zu tun. Die jQuery-Qrcode-Bibliothek verwendet die Methode charCodeat () zur Codierung und Konvertierung.
Diese Methode erhält standardmäßig die Unicode -Codierung. Im Allgemeinen verwenden Decoder UTF-8, ISO-8859-1 und andere Methoden.
Es gibt kein Problem mit Englisch. Wenn es chinesisch ist, wird Unicode in der Regel in UTF-16 mit einer Länge von 2 Ziffern implementiert, während die UTF-8-Codierung 3 Ziffern beträgt, sodass die Codierung und Dekodierung des QR-Code nicht übereinstimmt.
Die Lösung ist natürlich die String in UTF-8, bevor der QR-Code codiert. Der spezifische Code lautet wie folgt:
Funktion utf16to8 (str) {var out, i, len, c; out = ""; Len = Str.Length; für (i = 0; i <len; i ++) {c = str.charCodeat (i); if ((c> = 0x0001) && (c <= 0x007f)) {out += str.charat (i); } else if (c> 0x07ff) {out += string.fromCharCode (0xe0 | ((c >> 12) & 0x0f)); out += string.fromCharCode (0x80 | ((c >> 12) & 0x0f)); out += string.fromCharCode (0x80 | ((c >>> 6) & 0x3f)); out += string.fromCharCode (0x80 | ((c >> 0) & 0x3f)); } else {out += string.fromCharCode (0xc0 | ((c >> 6) & 0x1f)); out += string.fromCharCode (0x80 | ((c >> 0) & 0x3f)); }} return out; }Das obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, es wird für das Lernen aller hilfreich sein und ich hoffe, jeder wird Wulin.com mehr unterstützen.