gpt4 book ai didi

javascript - 带有 Javascript 的表情符号代理字符串。如何解析?

转载 作者:行者123 更新时间:2023-11-29 14:45:17 25 4
gpt4 key购买 nike

我想用 javascript 表达表情符号。我有一个文件...

:-),\ud83d\ude03
^^,\ud83d\ude03
^_^,\ud83d\ude03
:),\ud83d\ude03
:D,\ud83d\ude03

其中包含键和表情符号代理项作为值。我将阅读此内容,如果输入的字符串与键匹配,则用这些表情符号替换该词。

即输入“^^”将替换为笑脸标记。

但有些奇怪的是,如果我将这些信息作为对象,它会很好地打印表情符号。

喜欢...

this.emojiStore.osx = {
//smile
':-)' : '\ud83d\ude03'
, '^^' : '\ud83d\ude03'
, '^_^' : '\ud83d\ude03'
, ':)' : '\ud83d\ude03'
, ':D' : '\ud83d\ude03'
//frawn
, ':(' : '\ud83d\ude1e'
//crying
, 'T^T' : '\ud83d\ude22'
, 'T_T' : '\ud83d\ude22'
, 'ㅜㅜ' : '\ud83d\ude22'
, 'ㅠㅠ' : '\ud83d\ude22'
//poo
, 'shit' : '\ud83d\udca9'
};

替换部分看起来像...

this.value = emojiList[key];

但是当我从文件中读取信息时,它会打印出类似 '\ud83d\ude22' 的字符串。

如何用 js 表达代理字符串?(我不想使用 3rd 方库。)

仅供引用,js 文件和目标文件均使用 UTF-8 编码。

======== 文件加载部分

function loadFile(url){
var ret = {};
var rawFile = new XMLHttpRequest();
// rawFile.overrideMimeType('text/html; charset=utf-8');
rawFile.open("GET", url, false);
rawFile.onreadystatechange = function (){
if(rawFile.readyState === 4){
if(rawFile.status === 200 || rawFile.status == 0) {
var allText = rawFile.responseText;
var textByLine = allText.split('\n');
for(var i = 0; i < textByLine.length; i++){
if(textByLine[i].trim().length < 1) continue;
var key = textByLine[i].split(',')[0].trim();
var value = textByLine[i].split(',')[1].trim();
ret[key] = value;
}
}
}
};
rawFile.send(null);
console.log(ret);
return ret;
}

===========已编辑

我发现了一个提示。

当我从文件中读取时,它会将 \u 更改为 \\u,而当我从文本中读取时,它会保持原样。

  • 文件版本:\ud83d\ude03\\ud83d\\ude03
  • 脚本版本:\ud83d\ude03 本身

重点是如何防止它把 \ 变成 \\

虽然我仍然没有找到答案。

最佳答案

找到了我猜的答案。

引用以下链接: How do I decode a string with escaped unicode?

function parseUnicode(str){
var r = /\\u([\d\w]{4})/gi;
str = str.replace(r, function (match, grp) {
return String.fromCharCode(parseInt(grp, 16)); } );
return str;
}

作为引用,js String 值可以与来自文件的字符串不同。我做了一个函数来检查每个字符,结果是不同的。

function charAnalyst(str){

var result = '';
for(var i = 0; i < str.length; i++){
var aChar = str.charAt(i);
result += aChar;
console.log(aChar);
}
console.log(result);
}

我希望这会节省您的时间 :D

关于javascript - 带有 Javascript 的表情符号代理字符串。如何解析?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33685680/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com