如何解码 Google 表格中的特定字符 (unicode)
How to decode specific characters (unicode) in Google Sheets
我有一个包含 défi
(défi) 或 Österreich
(Östereeich) 文本的表格。
我可以用这个脚本解码第一个,另一方面我不能做第二个(我的意思是代码需要 3 个字节)
感谢您的帮助!
function decode(txt){
var texte = []
for (i=0;i<txt.length;i++){
var n = txt.substring(i,i+1).charCodeAt()
if (n>127){
if ((n & 32) > 0){
//texte.push(decode_utf8(txt.substring(i,i+3))) ??
i+=2
}
else{
texte.push(decode_utf8(txt.substring(i,i+2)))
i++
}
}
else{
texte.push(txt.substring(i,i+1))
}
}
return (texte.join(''))
}
function decode_utf8(s) {
return decodeURIComponent(escape(s));
}
这是一个解决方案...基于github
function utf8decode(utftext) {
var string = "";
var i = 0;
var c = c1 = c2 = 0;
while ( i < utftext.length ) {
c = utftext.charCodeAt(i);
if (c < 128) {
string += String.fromCharCode(c);
i++;
}
else if((c > 191) && (c < 224)) {
c2 = utftext.charCodeAt(i+1);
string += String.fromCharCode(((c & 31) << 6) | (c2 & 63));
i += 2;
}
else {
c2 = utftext.charCodeAt(i+1);
c3 = utftext.charCodeAt(i+2);
string += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));
i += 3;
}
}
return string;
}
我有一个包含 défi
(défi) 或 Österreich
(Östereeich) 文本的表格。
我可以用这个脚本解码第一个,另一方面我不能做第二个(我的意思是代码需要 3 个字节)
感谢您的帮助!
function decode(txt){
var texte = []
for (i=0;i<txt.length;i++){
var n = txt.substring(i,i+1).charCodeAt()
if (n>127){
if ((n & 32) > 0){
//texte.push(decode_utf8(txt.substring(i,i+3))) ??
i+=2
}
else{
texte.push(decode_utf8(txt.substring(i,i+2)))
i++
}
}
else{
texte.push(txt.substring(i,i+1))
}
}
return (texte.join(''))
}
function decode_utf8(s) {
return decodeURIComponent(escape(s));
}
这是一个解决方案...基于github
function utf8decode(utftext) {
var string = "";
var i = 0;
var c = c1 = c2 = 0;
while ( i < utftext.length ) {
c = utftext.charCodeAt(i);
if (c < 128) {
string += String.fromCharCode(c);
i++;
}
else if((c > 191) && (c < 224)) {
c2 = utftext.charCodeAt(i+1);
string += String.fromCharCode(((c & 31) << 6) | (c2 & 63));
i += 2;
}
else {
c2 = utftext.charCodeAt(i+1);
c3 = utftext.charCodeAt(i+2);
string += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));
i += 3;
}
}
return string;
}