用js怎么实现把一个链接变成二维码

JavaScript017

用js怎么实现把一个链接变成二维码,第1张

<div id = "qrcodeid"></div> //生成的二维码放在此 div 中

<script type="text/javascript" src="js/jquery.qrcode.min.js"></script>//引入qrcode.js(到https://github.com/jeromeetienne/jquery-qrcode 下载 )

<script>

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>

<script>//此处生成名片二维码(如要生成普通链接二维码 则 “text”参数值 直接替换成普通链接即可)

var the_text = "BEGIN:VCARD \r\nFN:姓名 \r\nTELCELL,VOICE:15000000000 \r\nTITLE:职称 \r\nORG:公司(组织) \r\nEMAILINTERNET,HOME:123@qq.com \r\nADRWORK,POSTAL:地球中国山东... \r\nURL:http://leerd.cn \r\nEND:VCARD"

the_text = utf16to8(the_text)

//alert(the_text)

jQuery('#qrcodeid').qrcode({

width:140,

height:140,

render:"canvas", //设置渲染方式 table canvas

typeNumber : -1,  //计算模式 

correctLevel  : 0,//纠错等级 

background   : "#ffffff",//背景颜色 

foreground   : "#000000",//前景颜色 

text:the_text

}) 

</script>

js使用jsonencode转码在向前端传递数据的时候,我们经常要把数据按照一定格式传递,如json格式,php中用json_encode来转换,但是这里通常会出现一个问题,那就是如果要转换的数据中包含中文,那么json_encode会自动将其中文字符转换成unicode编码。在调用json_encode 的时候我们可以先用urlencode()把它转换成unicode编码,经过json_encode后,再用urldecode解码,这样就能原样把数据传输到前台。在进行JS开发过程中,尤其是在开发报表时,报表已集成到Web页面中,通过在页面传递参数至报表中时,会发现有时某些参数值,传递到报表中是显示为问号或乱码等等一系列不能正常显示的情况。这是由于浏览器和报表服务器的编码不同,字符多次进行编码转换时出现错误导致字符的显示出现乱码,尤其是中日韩文和特殊字符更容易出现乱码问题。

以开发报表软件FineReport为例,在给报表服务器发送请求之前,对URL或者只对URL里面的参数名字和参数值,进行cjkEncode的编码,该方式兼容了各种不同的字符集,如ISO8859-1、 UTF-8、 GBK、 ENU_JP,尤其对中日韩文的处理采取了统一的方案。