Я хочу выразить эмози с помощью javascript. У меня есть файл как ...emoji суррогатная строка с Javascript. Как разобрать?
:-),\ud83d\ude03
^^,\ud83d\ude03
^_^,\ud83d\ude03
:),\ud83d\ude03
:D,\ud83d\ude03
, который содержит ключ и Emoji суррогат в качестве значения. Я собираюсь прочитать это, и если строка ввода совпадает с ключом, замените слово этими emoji.
Т.е. тип "^^" заменяется знаком улыбки.
Но есть что-то странное, если я помещаю эти данные в качестве объекта, он хорошо печатает emoji.
как ...
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? (Я не хочу, чтобы использовать 3-библиотеки.)
FYI, 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
сам
Так дело в том, как предотвратить это меняет \
к \\
.
Я все еще не нашел ответа.