国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 編程 > JavaScript > 正文

使用jquery.qrcode生成彩色二維碼實(shí)例

2019-11-20 14:17:23
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

jquery.qrcode.js 是居于jquery類(lèi)庫(kù)的繪制二維碼的插件,用它來(lái)實(shí)現(xiàn)二維碼圖形渲染支持canvas和table兩種繪圖方式。(jquery.qrcode.js 設(shè)置顯示方式為table時(shí)在webkit核心瀏覽器如chrome下會(huì)變形,這個(gè)需要注意。)

下面為測(cè)試代碼(增加了顏色控制,可以設(shè)置4個(gè)區(qū)塊的顏色值,需要指定render為table。),效果如下:

代碼如下:

<html><head><title>JS生成二維碼</title><script type="text/javascript" src="jquery-1.4.2.min.js"></script><script type="text/javascript" src="jquery.qrcode.min.js"></script><style> #output{ margin-left:300px;  margin-top:100px;  }</style></head><body><div id="output"></div><script> window.onload = function () { var trs = $('#output').qrcode({  width: 100,  height: 100,  render: "canvas", //設(shè)置渲染方式 table canvas  text: utf16to8("javascript生成二維碼"),  background: "#ffffff", //背景顏色   foreground: "red" //前景顏色  }).find('tr'), trLen = Math.floor(trs.size() / 2), tdLen = Math.floor(trs.eq(0).find('td').size() / 2), tds, bgColor; var colors = [['#ff0000', '#0100e2'], ['#00ed01', '#9f4d95']]; trs.each(function (j) {  tds = $(this).find('td');  tds.each(function (i) {  bgColor = this.style.backgroundColor;  if (bgColor == 'red') {   this.style.backgroundColor = colors[j < trLen ? 0 : 1][i < tdLen ? 0 : 1];  }  }); }); } function utf16to8(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; } </script> </body></html>

jquery-qrcode這個(gè)庫(kù)是采用 charCodeAt這個(gè)方式進(jìn)行編碼轉(zhuǎn)換的,而這個(gè)方法默認(rèn)會(huì)獲取它的 Unicode 編碼,一般的解碼器都是采用UTF-8, ISO-8859-1等方式,英文是沒(méi)有問(wèn)題,如果是中文,一般情況下Unicode是UTF-16實(shí)現(xiàn),長(zhǎng)度2位,而UTF-8編碼是3位,這樣二維碼的編解碼就不匹配了。
 
解決方式:在二維碼編碼前把字符串轉(zhuǎn)換成UTF-8,具體代碼如上utf16to8函數(shù)

PS:本站還提供了一個(gè)功能非常強(qiáng)大的二維碼生成工具,感興趣的朋友可以參考一下:

http://tools.VeVB.COm/transcoding/jb51qrcode

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 新河县| 太湖县| 石阡县| 兴和县| 南平市| 冷水江市| 兴宁市| 吐鲁番市| 阳山县| 泰兴市| 溧水县| 沈丘县| 长沙县| 宁南县| 民丰县| 牡丹江市| 皋兰县| 岳普湖县| 塔城市| 思茅市| 潢川县| 阳山县| 华亭县| 建水县| 溆浦县| 蒲城县| 涞源县| 芦溪县| 甘洛县| 汉阴县| 长顺县| 榆树市| 光泽县| 梅河口市| 博野县| 驻马店市| 杭锦后旗| 嵩明县| 河间市| 新邵县| 岚皋县|