Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

二维码内容支持写入中文_zh 引入utf.js文件 #126

Open
KaapoMarcus opened this issue Mar 3, 2019 · 1 comment
Open

二维码内容支持写入中文_zh 引入utf.js文件 #126

KaapoMarcus opened this issue Mar 3, 2019 · 1 comment

Comments

@KaapoMarcus
Copy link

KaapoMarcus commented Mar 3, 2019

用法:引入js
<script type="text/javascript" src="../normal/utf.js"></script>
二维码内容:
$('#qrcode').qrcode(utf16to8("中文字词Test"));
utf.js源码:

/* utf.js - UTF-8 <=> UTF-16 convertion
*

  • Copyright (C) 1999 Masanao Izumo [email protected]
  • Version: 1.0
  • LastModified: Dec 25 1999
  • This library is free. You can redistribute it and/or modify it.
    */

/*

  • Interfaces:
  • utf8 = utf16to8(utf16);
  • utf16 = utf16to8(utf8);
    */

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;

}

function utf8to16(str) {
var out, i, len, c;
var char2, char3;

out = "";
len = str.length;
i = 0;
while(i < len) {
c = str.charCodeAt(i++);
switch(c >> 4)
{ 
  case 0: case 1: case 2: case 3: case 4: case 5: case 6: case 7:
    // 0xxxxxxx
    out += str.charAt(i-1);
    break;
  case 12: case 13:
    // 110x xxxx   10xx xxxx
    char2 = str.charCodeAt(i++);
    out += String.fromCharCode(((c & 0x1F) << 6) | (char2 & 0x3F));
    break;
  case 14:
    // 1110 xxxx  10xx xxxx  10xx xxxx
    char2 = str.charCodeAt(i++);
    char3 = str.charCodeAt(i++);
    out += String.fromCharCode(((c & 0x0F) << 12) |
				   ((char2 & 0x3F) << 6) |
				   ((char3 & 0x3F) << 0));
    break;
}
}

return out;

}

@KaapoMarcus KaapoMarcus changed the title 二维码内容支持中文_zh 引入utf.js为你教案 二维码内容支持写入中文_zh 引入utf.js文件 Mar 3, 2019
@wanqqq29
Copy link

wanqqq29 commented Feb 4, 2021

感谢,这个办法有用!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants