博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JqueryQrcode生成二维码不支持中文的解决办法
阅读量:6867 次
发布时间:2019-06-26

本文共 872 字,大约阅读时间需要 2 分钟。

JqueryQrcode.js有一个小小的缺点,就是默认不支持中文。
这跟js的机制有关系,jquery-qrcode这个库是采用 charCodeAt() 这个方式进行编码转换的,
而这个方法默认会获取它的 Unicode 编码,一般的解码器都是采用UTF-8, ISO-8859-1等方式,
英文是没有问题,如果是中文,一般情况下Unicode是UTF-16实现,长度2位,而UTF-8编码是3位,这样二维码的编解码就不匹配了。
解决方式当然是,在二维码编码前把字符串转换成UTF-8,具体代码如下:
 
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;  }

 

转载地址:http://xmkfl.baihongyu.com/

你可能感兴趣的文章
Shell脚本易犯的错
查看>>
基于邮件和百度云存储的android用户反馈系统设计
查看>>
Elasticsearch Sliced Scroll分页检索案例分享
查看>>
【腾讯Bugly干货分享】Redex初探与Interdex:Andorid冷启动优化
查看>>
DDD领域模型和持久模型的实施方式(不定期更新ing)
查看>>
freebsd下“find”命令详解
查看>>
“开发测试”降低软件开发中的风险(转)
查看>>
聊聊FluxFlatMap的concurrency及prefetch参数
查看>>
如何对多个版本的Word文档对比,查找变动删减的内容
查看>>
PHP MEMCACHE 详解 php缓存
查看>>
全面理解java异常机制
查看>>
【MAC】MAC使用技巧&开发常识&常用命令行
查看>>
telnet与ssh的区别
查看>>
java大神必学篇之网络编程完全总结
查看>>
java io FileInputStream
查看>>
eclipse指定启动的jdk
查看>>
图片格式WebP在微信中的尝试
查看>>
Java 内存模型
查看>>
实现TextView的onClick的xml配置
查看>>
windows server 2008 R2 AD 域之---用批处理映射网络映射驱动器并自动修改磁盘卷标名脚本...
查看>>