jqueryはQRコードを生成する

4387 ワード

qrcodeは、jQueryを使用してグラフィックレンダリング、図面描画、canvas(HTML 5)とtableの2つの方法をサポートしています.https://github.com/jeromeetienne/jquery-qrcode最新のコードを取得します.
使用方法
1、まずページにjqueryライブラリファイルとqrcodeプラグインを追加します.
<script type="text/javascript" src="jquery.js"></script> 
<script type="text/javascript" src="jquery.qrcode.min.js"></script> 

2、ページにQRコードを表示する必要があるところに以下のコードを加える.
<div id="code"></div> 

3、qrcodeプラグインを呼び出します.
qrcodeはcanvasとtableの2つの方法でピクチャレンダリングをサポートし、デフォルトではcanvas方式が使用され、効率が最も高く、もちろんブラウザがhtml 5をサポートします.ダイレクトコールは次のとおりです.
$('#code').qrcode("http://www.helloweba.com"); //      

次のように呼び出すこともできます.
$("#code").qrcode({ 
    render: "table"//table   
    width: 200//   
    height:200//   
    text: "www.helloweba.com" //     
}); 

これにより、ページに直接QRコードを生成することができ、携帯電話の「スキャン」機能でQRコード情報を読み取ることができます.
中国語を認識する
中国語コンテンツのQRコードが認識できないことを実験で発見し,jquery-qrcodeはcharCodeAt()方式で符号化変換されていることが多方面の資料を探すことで分かった.この方法ではデフォルトでUnicode符号化が取得され、中国語の内容があれば、QRコードを生成する前に文字列をUTF-8に変換してからQRコードを生成します.次の関数を使用して、中国語文字列を変換できます.
function toUtf8(str) {    
    var out, i, len, c;    
    out = "";    
    len = str.length;    
    for(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 >>  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;    
} 

次の例を示します.
var str = toUtf8("       !"); 
$('#code').qrcode(str);