diff --git a/dataModels/MessageModel.js b/dataModels/MessageModel.js
index 579ce2a52..3f781f95b 100644
--- a/dataModels/MessageModel.js
+++ b/dataModels/MessageModel.js
@@ -2146,8 +2146,9 @@ messageSchema.statics.extendMessages = async (messages = []) => {
message.content = message.content.replace(
/\[f\/(.*?)]/g,
function (r, v1) {
+ const emojiUrl = getUrl('emoji', v1);
return (
- ''
+ ''
);
},
);
diff --git a/dataModels/MomentModel.js b/dataModels/MomentModel.js
index 77a8a145a..2ccaa2d21 100644
--- a/dataModels/MomentModel.js
+++ b/dataModels/MomentModel.js
@@ -1,6 +1,5 @@
const mongoose = require('../settings/database');
-const { twemoji } = require('../settings/editor');
-const { fromNow } = require('../nkcModules/tools');
+const { fluentuiEmojiUnicode } = require('../nkcModules/fluentuiEmoji');
// 包含所有document的状态
// 并且额外包含 deleted, cancelled
@@ -1511,6 +1510,7 @@ schema.statics.getQuoteDefaultContent = async (quoteType) => {
* */
schema.statics.renderContent = async (content) => {
const nkcRender = require('../nkcModules/nkcRender');
+ const { getUrl } = require('../nkcModules/tools');
const { filterMessageContent } = require('../nkcModules/xssFilters');
// 替换空格
// content = content.replace(/ /g, ' ');
@@ -1522,10 +1522,11 @@ schema.statics.renderContent = async (content) => {
// 替换换行符
content = content.replace(/\n/g, '
');
content = content.replace(/\[(.*?)]/g, function (r, v1) {
- if (!twemoji.includes(v1)) {
+ if (!fluentuiEmojiUnicode.includes(v1)) {
return r;
}
- return '';
+ const emojiUrl = getUrl('emoji', v1);
+ return '';
});
return content;
};
diff --git a/middlewares/body/remoteFile.js b/middlewares/body/remoteFile.js
index 89e75ffad..90bd0ca63 100644
--- a/middlewares/body/remoteFile.js
+++ b/middlewares/body/remoteFile.js
@@ -1,55 +1,70 @@
const http = require('http');
-const FILE = require("../../nkcModules/file");
+const FILE = require('../../nkcModules/file');
const ContentDisposition = require('content-disposition');
-const {pictureExtensions, breakpointExtensions} = FILE;
+const { pictureExtensions, breakpointExtensions } = FILE;
const fileBody = require('./file');
module.exports = async (ctx) => {
// 关闭 gzip 压缩
ctx.compress = false;
- const {remoteFile, isAttachment, settings} = ctx;
- const {
- url: fileUrl,
- filename = '',
- } = remoteFile;
+ const { remoteFile, isAttachment, settings } = ctx;
+ const { url: fileUrl, filename = '' } = remoteFile;
let ext = filename.split('.');
ext = ext.pop() || '';
ext = ext.toLowerCase();
- if(!ext) ctx.throw(500, `远程文件格式不能为空`);
+ if (!ext) {
+ ctx.throw(500, `远程文件格式不能为空`);
+ }
let fileRes;
- try{
+ try {
fileRes = await getRemoteFileRes(fileUrl.toString(), ctx);
- } catch(err) {
+ } catch (err) {
// store service 报错时返回一张默认图片
- const {defaultAvatarPath} = settings.statics;
- ctx.filePath = defaultAvatarPath;
+ const { lostImage } = settings.statics;
+ ctx.filePath = lostImage;
return await fileBody(ctx);
}
let contentDispositionType;
- if (isAttachment || (!pictureExtensions.includes(ext) && (!breakpointExtensions.includes(ext)))) {
+ if (
+ isAttachment ||
+ (!pictureExtensions.includes(ext) && !breakpointExtensions.includes(ext))
+ ) {
contentDispositionType = 'attachment';
} else {
contentDispositionType = 'inline';
}
ctx.type = ext;
ctx.body = fileRes;
- ctx.set('content-disposition', ContentDisposition(filename, {type: contentDispositionType}));
+ ctx.set(
+ 'content-disposition',
+ ContentDisposition(filename, { type: contentDispositionType }),
+ );
const fileResContentLength = fileRes.headers[`content-length`];
const fileResAcceptRanges = fileRes.headers[`accept-ranges`];
const fileResCacheControl = fileRes.headers[`cache-control`];
const fileResRange = fileRes.headers[`content-range`];
const fileResConnection = fileRes.headers[`connection`];
const fileResEtag = fileRes.headers[`etag`];
- if(fileResAcceptRanges) ctx.set('accept-ranges', fileResAcceptRanges);
- if(fileResCacheControl) ctx.set('cache-control', fileResCacheControl);
- if(fileResConnection) ctx.set('connection', fileResConnection);
- if(fileResContentLength) ctx.set('content-length', fileResContentLength);
- if(fileResEtag) ctx.set('etag', fileResEtag);
- if(ctx.fresh) {
+ if (fileResAcceptRanges) {
+ ctx.set('accept-ranges', fileResAcceptRanges);
+ }
+ if (fileResCacheControl) {
+ ctx.set('cache-control', fileResCacheControl);
+ }
+ if (fileResConnection) {
+ ctx.set('connection', fileResConnection);
+ }
+ if (fileResContentLength) {
+ ctx.set('content-length', fileResContentLength);
+ }
+ if (fileResEtag) {
+ ctx.set('etag', fileResEtag);
+ }
+ if (ctx.fresh) {
ctx.status = 304;
return;
}
- if(fileResRange) {
+ if (fileResRange) {
ctx.set(`content-range`, fileResRange);
ctx.status = 206;
}
@@ -60,31 +75,31 @@ function getRemoteFileRes(url, ctx) {
const headerRange = ctx.request.headers['range'];
const options = {
agent: new http.Agent({
- "keepAlive": true,
- "timeout": 30000
+ keepAlive: true,
+ timeout: 30000,
}),
method: 'GET',
};
if (headerRange) {
options.headers = {
- range: headerRange
- }
+ range: headerRange,
+ };
}
return new Promise((resolve, reject) => {
- const req = http.request(url, options, res => {
+ const req = http.request(url, options, (res) => {
res.on('error', reject);
- if(res.statusCode >= 400) {
+ if (res.statusCode >= 400) {
res.setEncoding('utf8');
let resData = '';
- res.on('data', d => {
+ res.on('data', (d) => {
resData += d;
});
res.on('end', () => {
- try{
+ try {
const parsedData = JSON.parse(resData);
reject(parsedData);
- } catch(err) {
- reject(err)
+ } catch (err) {
+ reject(err);
}
});
} else {
@@ -94,4 +109,4 @@ function getRemoteFileRes(url, ctx) {
req.on('error', reject);
req.end();
});
-}
\ No newline at end of file
+}
diff --git a/nkcModules/fluentuiEmoji.js b/nkcModules/fluentuiEmoji.js
new file mode 100644
index 000000000..81b351311
--- /dev/null
+++ b/nkcModules/fluentuiEmoji.js
@@ -0,0 +1,41 @@
+const fluentuiEmoji = require('./fluentuiEmoji.json');
+const emojiRegex = require('emoji-regex');
+const regex = (emojiRegex.default || emojiRegex)();
+const fluentuiEmojiUnicode = [];
+const fluentuiEmoji_unicode_emoji = {};
+const fluentuiEmoji_char_emoji = {};
+
+for (const group of fluentuiEmoji) {
+ for (const emoji of group.emoji) {
+ fluentuiEmojiUnicode.push(emoji.unicode);
+ fluentuiEmoji_unicode_emoji[emoji.unicode] = emoji;
+ fluentuiEmoji_char_emoji[emoji.glyph] = emoji;
+ }
+}
+
+function replaceEmojiWithImgTags(htmlString = '') {
+ const { getUrl } = require('./tools');
+ return htmlString.replace(regex, (char) => {
+ const emoji = fluentuiEmoji_char_emoji[char];
+ if (!emoji) {
+ return char;
+ }
+ const emojiUrl = getUrl('emoji', emoji.unicode);
+ return ``;
+ });
+}
+
+function getEmojiCharByUnicode(unicode) {
+ const emoji = fluentuiEmoji_unicode_emoji[unicode];
+ if (!emoji) {
+ return '?';
+ }
+ return emoji.glyph;
+}
+
+module.exports = {
+ fluentuiEmojiUnicode,
+ fluentuiEmoji,
+ replaceEmojiWithImgTags,
+ getEmojiCharByUnicode,
+};
diff --git a/nkcModules/fluentuiEmoji.json b/nkcModules/fluentuiEmoji.json
new file mode 100644
index 000000000..910b4f0e3
--- /dev/null
+++ b/nkcModules/fluentuiEmoji.json
@@ -0,0 +1,7279 @@
+[{
+ "name": "表情",
+ "emoji": [{
+ "unicode": "1f605",
+ "tts": "grinning face with sweat",
+ "glyph": "😅"
+ }, {
+ "unicode": "1f600",
+ "tts": "grinning face",
+ "glyph": "😀"
+ }, {
+ "unicode": "1f603",
+ "tts": "grinning face with big eyes",
+ "glyph": "😃"
+ }, {
+ "unicode": "1f604",
+ "tts": "grinning face with smiling eyes",
+ "glyph": "😄"
+ }, {
+ "unicode": "1f606",
+ "tts": "grinning squinting face",
+ "glyph": "😆"
+ }, {
+ "unicode": "1f61c",
+ "tts": "winking face with tongue",
+ "glyph": "😜"
+ }, {
+ "unicode": "1f642",
+ "tts": "slightly smiling face",
+ "glyph": "🙂"
+ }, {
+ "unicode": "1f632",
+ "tts": "astonished face",
+ "glyph": "😲"
+ }, {
+ "unicode": "1f601",
+ "tts": "beaming face with smiling eyes",
+ "glyph": "😁"
+ }, {
+ "unicode": "1f61d",
+ "tts": "squinting face with tongue",
+ "glyph": "😝"
+ }, {
+ "unicode": "1f60a",
+ "tts": "smiling face with smiling eyes",
+ "glyph": "😊"
+ }, {
+ "unicode": "1f62d",
+ "tts": "loudly crying face",
+ "glyph": "😭"
+ }, {
+ "unicode": "1f929",
+ "tts": "star-struck",
+ "glyph": "🤩"
+ }, {
+ "unicode": "1f60f",
+ "tts": "smirking face",
+ "glyph": "😏"
+ }, {
+ "unicode": "1f972",
+ "tts": "smiling face with tear",
+ "glyph": "🥲"
+ }, {
+ "unicode": "1f913",
+ "tts": "nerd face",
+ "glyph": "🤓"
+ }, {
+ "unicode": "1fae5",
+ "tts": "dotted line face",
+ "glyph": "🫥"
+ }, {
+ "unicode": "1f60c",
+ "tts": "relieved face",
+ "glyph": "😌"
+ }, {
+ "unicode": "1f610",
+ "tts": "neutral face",
+ "glyph": "😐"
+ }, {
+ "unicode": "1f617",
+ "tts": "kissing face",
+ "glyph": "😗"
+ }, {
+ "unicode": "1f616",
+ "tts": "confounded face",
+ "glyph": "😖"
+ }, {
+ "unicode": "1f615",
+ "tts": "confused face",
+ "glyph": "😕"
+ }, {
+ "unicode": "1f920",
+ "tts": "cowboy hat face",
+ "glyph": "🤠"
+ }, {
+ "unicode": "1f61a",
+ "tts": "kissing face with closed eyes",
+ "glyph": "😚"
+ }, {
+ "unicode": "1f622",
+ "tts": "crying face",
+ "glyph": "😢"
+ }, {
+ "unicode": "1f619",
+ "tts": "kissing face with smiling eyes",
+ "glyph": "😙"
+ }, {
+ "unicode": "1f61e",
+ "tts": "disappointed face",
+ "glyph": "😞"
+ }, {
+ "unicode": "1f62a",
+ "tts": "sleepy face",
+ "glyph": "😪"
+ }, {
+ "unicode": "1f625",
+ "tts": "sad but relieved face",
+ "glyph": "😥"
+ }, {
+ "unicode": "1f602",
+ "tts": "face with tears of joy",
+ "glyph": "😂"
+ }, {
+ "unicode": "1f613",
+ "tts": "downcast face with sweat",
+ "glyph": "😓"
+ }, {
+ "unicode": "1f924",
+ "tts": "drooling face",
+ "glyph": "🤤"
+ }, {
+ "unicode": "1f923",
+ "tts": "rolling on the floor laughing",
+ "glyph": "🤣"
+ }, {
+ "unicode": "1f630",
+ "tts": "anxious face with sweat",
+ "glyph": "😰"
+ }, {
+ "unicode": "1f643",
+ "tts": "upside-down face",
+ "glyph": "🙃"
+ }, {
+ "unicode": "1f618",
+ "tts": "face blowing a kiss",
+ "glyph": "😘"
+ }, {
+ "unicode": "1f62e-200d-1f4a8",
+ "tts": "face exhaling",
+ "glyph": "😮💨"
+ }, {
+ "unicode": "1f979",
+ "tts": "face holding back tears",
+ "glyph": "🥹"
+ }, {
+ "unicode": "1f629",
+ "tts": "weary face",
+ "glyph": "😩"
+ }, {
+ "unicode": "1f609",
+ "tts": "winking face",
+ "glyph": "😉"
+ }, {
+ "unicode": "1f631",
+ "tts": "face screaming in fear",
+ "glyph": "😱"
+ }, {
+ "unicode": "1f92e",
+ "tts": "face vomiting",
+ "glyph": "🤮"
+ }, {
+ "unicode": "1fae4",
+ "tts": "face with diagonal mouth",
+ "glyph": "🫤"
+ }, {
+ "unicode": "1f92d",
+ "tts": "face with hand over mouth",
+ "glyph": "🤭"
+ }, {
+ "unicode": "1f915",
+ "tts": "face with head-bandage",
+ "glyph": "🤕"
+ }, {
+ "unicode": "1f637",
+ "tts": "face with medical mask",
+ "glyph": "😷"
+ }, {
+ "unicode": "1f9d0",
+ "tts": "face with monocle",
+ "glyph": "🧐"
+ }, {
+ "unicode": "1fae2",
+ "tts": "face with open eyes and hand over mouth",
+ "glyph": "🫢"
+ }, {
+ "unicode": "1f62e",
+ "tts": "face with open mouth",
+ "glyph": "😮"
+ }, {
+ "unicode": "1fae3",
+ "tts": "face with peeking eye",
+ "glyph": "🫣"
+ }, {
+ "unicode": "1f928",
+ "tts": "face with raised eyebrow",
+ "glyph": "🤨"
+ }, {
+ "unicode": "1f644",
+ "tts": "face with rolling eyes",
+ "glyph": "🙄"
+ }, {
+ "unicode": "1f635-200d-1f4ab",
+ "tts": "face with spiral eyes",
+ "glyph": "😵💫"
+ }, {
+ "unicode": "1f624",
+ "tts": "face with steam from nose",
+ "glyph": "😤"
+ }, {
+ "unicode": "1f92c",
+ "tts": "face with symbols on mouth",
+ "glyph": "🤬"
+ }, {
+ "unicode": "1f927",
+ "tts": "sneezing face",
+ "glyph": "🤧"
+ }, {
+ "unicode": "1f912",
+ "tts": "face with thermometer",
+ "glyph": "🤒"
+ }, {
+ "unicode": "1f61b",
+ "tts": "face with tongue",
+ "glyph": "😛"
+ }, {
+ "unicode": "1f636",
+ "tts": "face without mouth",
+ "glyph": "😶"
+ }, {
+ "unicode": "1f628",
+ "tts": "fearful face",
+ "glyph": "😨"
+ }, {
+ "unicode": "1f633",
+ "tts": "flushed face",
+ "glyph": "😳"
+ }, {
+ "unicode": "2639-fe0f",
+ "tts": "frowning face",
+ "glyph": "☹️"
+ }, {
+ "unicode": "1f626",
+ "tts": "frowning face with open mouth",
+ "glyph": "😦"
+ }, {
+ "unicode": "1f62b",
+ "tts": "tired face",
+ "glyph": "😫"
+ }, {
+ "unicode": "1f612",
+ "tts": "unamused face",
+ "glyph": "😒"
+ }, {
+ "unicode": "1f914",
+ "tts": "thinking face",
+ "glyph": "🤔"
+ }, {
+ "unicode": "1f62c",
+ "tts": "grimacing face",
+ "glyph": "😬"
+ }, {
+ "unicode": "1f61f",
+ "tts": "worried face",
+ "glyph": "😟"
+ }, {
+ "unicode": "1f971",
+ "tts": "yawning face",
+ "glyph": "🥱"
+ }, {
+ "unicode": "1f910",
+ "tts": "zipper-mouth face",
+ "glyph": "🤐"
+ }, {
+ "unicode": "1f92a",
+ "tts": "zany face",
+ "glyph": "🤪"
+ }, {
+ "unicode": "1f620",
+ "tts": "angry face",
+ "glyph": "😠"
+ }, {
+ "unicode": "1f627",
+ "tts": "anguished face",
+ "glyph": "😧"
+ }, {
+ "unicode": "1f917",
+ "tts": "smiling face with open hands",
+ "glyph": "🤗"
+ }, {
+ "unicode": "1f925",
+ "tts": "lying face",
+ "glyph": "🤥"
+ }, {
+ "unicode": "1f62f",
+ "tts": "hushed face",
+ "glyph": "😯"
+ }, {
+ "unicode": "1fae0",
+ "tts": "melting face",
+ "glyph": "🫠"
+ }, {
+ "unicode": "1f911",
+ "tts": "money-mouth face",
+ "glyph": "🤑"
+ }, {
+ "unicode": "1f97a",
+ "tts": "pleading face",
+ "glyph": "🥺"
+ }, {
+ "unicode": "1f974",
+ "tts": "woozy face",
+ "glyph": "🥴"
+ }, {
+ "unicode": "1f614",
+ "tts": "pensive face",
+ "glyph": "😔"
+ }, {
+ "unicode": "1f623",
+ "tts": "persevering face",
+ "glyph": "😣"
+ }, {
+ "unicode": "1f975",
+ "tts": "hot face",
+ "glyph": "🥵"
+ }, {
+ "unicode": "1f47f",
+ "tts": "angry face with horns",
+ "glyph": "👿"
+ }, {
+ "unicode": "1f635",
+ "tts": "face with crossed-out eyes",
+ "glyph": "😵"
+ }, {
+ "unicode": "1f973",
+ "tts": "partying face",
+ "glyph": "🥳"
+ }, {
+ "unicode": "1f92b",
+ "tts": "shushing face",
+ "glyph": "🤫"
+ }, {
+ "unicode": "1f634",
+ "tts": "sleeping face",
+ "glyph": "😴"
+ }, {
+ "unicode": "1f978",
+ "tts": "disguised face",
+ "glyph": "🥸"
+ }, {
+ "unicode": "1f641",
+ "tts": "slightly frowning face",
+ "glyph": "🙁"
+ }, {
+ "unicode": "1f611",
+ "tts": "expressionless face",
+ "glyph": "😑"
+ }, {
+ "unicode": "263a-fe0f",
+ "tts": "smiling face",
+ "glyph": "☺️"
+ }, {
+ "unicode": "1f607",
+ "tts": "smiling face with halo",
+ "glyph": "😇"
+ }, {
+ "unicode": "1f92f",
+ "tts": "exploding head",
+ "glyph": "🤯"
+ }, {
+ "unicode": "1fae1",
+ "tts": "saluting face",
+ "glyph": "🫡"
+ }, {
+ "unicode": "1f60b",
+ "tts": "face savoring food",
+ "glyph": "😋"
+ }, {
+ "unicode": "1f636-200d-1f32b-fe0f",
+ "tts": "face in clouds",
+ "glyph": "😶🌫️"
+ }, {
+ "unicode": "1f970",
+ "tts": "smiling face with hearts",
+ "glyph": "🥰"
+ }, {
+ "unicode": "1f60d",
+ "tts": "smiling face with heart-eyes",
+ "glyph": "😍"
+ }, {
+ "unicode": "1f922",
+ "tts": "nauseated face",
+ "glyph": "🤢"
+ }, {
+ "unicode": "1f60e",
+ "tts": "smiling face with sunglasses",
+ "glyph": "😎"
+ }, {
+ "unicode": "1f976",
+ "tts": "cold face",
+ "glyph": "🥶"
+ }, {
+ "unicode": "1f621",
+ "tts": "pouting face",
+ "glyph": "😡"
+ }, {
+ "unicode": "1f479",
+ "tts": "ogre",
+ "glyph": "👹"
+ }, {
+ "unicode": "1f921",
+ "tts": "clown face",
+ "glyph": "🤡"
+ }, {
+ "unicode": "1f608",
+ "tts": "smiling face with horns",
+ "glyph": "😈"
+ }, {
+ "unicode": "1f47a",
+ "tts": "goblin",
+ "glyph": "👺"
+ }, {
+ "unicode": "1f63c",
+ "tts": "cat with wry smile",
+ "glyph": "😼"
+ }, {
+ "unicode": "1f638",
+ "tts": "grinning cat with smiling eyes",
+ "glyph": "😸"
+ }, {
+ "unicode": "1f63a",
+ "tts": "grinning cat",
+ "glyph": "😺"
+ }, {
+ "unicode": "1f63e",
+ "tts": "pouting cat",
+ "glyph": "😾"
+ }, {
+ "unicode": "1f63b",
+ "tts": "smiling cat with heart-eyes",
+ "glyph": "😻"
+ }, {
+ "unicode": "1f63d",
+ "tts": "kissing cat",
+ "glyph": "😽"
+ }, {
+ "unicode": "1f63f",
+ "tts": "crying cat",
+ "glyph": "😿"
+ }, {
+ "unicode": "1f640",
+ "tts": "weary cat",
+ "glyph": "🙀"
+ }, {
+ "unicode": "1f639",
+ "tts": "cat with tears of joy",
+ "glyph": "😹"
+ }, {
+ "unicode": "1f649",
+ "tts": "hear-no-evil monkey",
+ "glyph": "🙉"
+ }, {
+ "unicode": "1f648",
+ "tts": "see-no-evil monkey",
+ "glyph": "🙈"
+ }, {
+ "unicode": "1f64a",
+ "tts": "speak-no-evil monkey",
+ "glyph": "🙊"
+ }, {
+ "unicode": "1f47d",
+ "tts": "alien",
+ "glyph": "👽"
+ }, {
+ "unicode": "1f916",
+ "tts": "robot",
+ "glyph": "🤖"
+ }, {
+ "unicode": "1f4a9",
+ "tts": "pile of poo",
+ "glyph": "💩"
+ }, {
+ "unicode": "1f480",
+ "tts": "skull",
+ "glyph": "💀"
+ }, {
+ "unicode": "2620-fe0f",
+ "tts": "skull and crossbones",
+ "glyph": "☠️"
+ }, {
+ "unicode": "1f47b",
+ "tts": "ghost",
+ "glyph": "👻"
+ }, {
+ "unicode": "1f47e",
+ "tts": "alien monster",
+ "glyph": "👾"
+ }, {
+ "unicode": "1f496",
+ "tts": "sparkling heart",
+ "glyph": "💖"
+ }, {
+ "unicode": "1f49c",
+ "tts": "purple heart",
+ "glyph": "💜"
+ }, {
+ "unicode": "2764-fe0f",
+ "tts": "red heart",
+ "glyph": "❤️"
+ }, {
+ "unicode": "1f493",
+ "tts": "beating heart",
+ "glyph": "💓"
+ }, {
+ "unicode": "1f497",
+ "tts": "growing heart",
+ "glyph": "💗"
+ }, {
+ "unicode": "2763-fe0f",
+ "tts": "heart exclamation",
+ "glyph": "❣️"
+ }, {
+ "unicode": "2764-fe0f-200d-1fa79",
+ "tts": "mending heart",
+ "glyph": "❤️🩹"
+ }, {
+ "unicode": "1f90d",
+ "tts": "white heart",
+ "glyph": "🤍"
+ }, {
+ "unicode": "1f49e",
+ "tts": "revolving hearts",
+ "glyph": "💞"
+ }, {
+ "unicode": "1f48b",
+ "tts": "kiss mark",
+ "glyph": "💋"
+ }, {
+ "unicode": "1f90e",
+ "tts": "brown heart",
+ "glyph": "🤎"
+ }, {
+ "unicode": "1f494",
+ "tts": "broken heart",
+ "glyph": "💔"
+ }, {
+ "unicode": "1f9e1",
+ "tts": "orange heart",
+ "glyph": "🧡"
+ }, {
+ "unicode": "1f48c",
+ "tts": "love letter",
+ "glyph": "💌"
+ }, {
+ "unicode": "1f49a",
+ "tts": "green heart",
+ "glyph": "💚"
+ }, {
+ "unicode": "1f49d",
+ "tts": "heart with ribbon",
+ "glyph": "💝"
+ }, {
+ "unicode": "1f495",
+ "tts": "two hearts",
+ "glyph": "💕"
+ }, {
+ "unicode": "2764-fe0f-200d-1f525",
+ "tts": "heart on fire",
+ "glyph": "❤️🔥"
+ }, {
+ "unicode": "1f49b",
+ "tts": "yellow heart",
+ "glyph": "💛"
+ }, {
+ "unicode": "1f5a4",
+ "tts": "black heart",
+ "glyph": "🖤"
+ }, {
+ "unicode": "1f498",
+ "tts": "heart with arrow",
+ "glyph": "💘"
+ }, {
+ "unicode": "1f499",
+ "tts": "blue heart",
+ "glyph": "💙"
+ }, {
+ "unicode": "1f49f",
+ "tts": "heart decoration",
+ "glyph": "💟"
+ }, {
+ "unicode": "1f4ab",
+ "tts": "dizzy",
+ "glyph": "💫"
+ }, {
+ "unicode": "1f441-fe0f-200d-1f5e8-fe0f",
+ "tts": "eye in speech bubble",
+ "glyph": "👁️🗨️"
+ }, {
+ "unicode": "1f4ac",
+ "tts": "speech balloon",
+ "glyph": "💬"
+ }, {
+ "unicode": "1f4af",
+ "tts": "hundred points",
+ "glyph": "💯"
+ }, {
+ "unicode": "1f5ef-fe0f",
+ "tts": "right anger bubble",
+ "glyph": "🗯️"
+ }, {
+ "unicode": "1f5e8-fe0f",
+ "tts": "left speech bubble",
+ "glyph": "🗨️"
+ }, {
+ "unicode": "1f573-fe0f",
+ "tts": "hole",
+ "glyph": "🕳️"
+ }, {
+ "unicode": "1f4ad",
+ "tts": "thought balloon",
+ "glyph": "💭"
+ }, {
+ "unicode": "1f4a8",
+ "tts": "dashing away",
+ "glyph": "💨"
+ }, {
+ "unicode": "1f4a3",
+ "tts": "bomb",
+ "glyph": "💣"
+ }, {
+ "unicode": "1f4a6",
+ "tts": "sweat droplets",
+ "glyph": "💦"
+ }, {
+ "unicode": "1f4a2",
+ "tts": "anger symbol",
+ "glyph": "💢"
+ }, {
+ "unicode": "1f4a5",
+ "tts": "collision",
+ "glyph": "💥"
+ }, {
+ "unicode": "1f4a4",
+ "tts": "zzz",
+ "glyph": "💤"
+ }]
+},
+ {
+ "name": "人物",
+ "emoji": [{
+ "unicode": "1f447",
+ "tts": "backhand index pointing down",
+ "glyph": "👇"
+ }, {
+ "unicode": "1f448",
+ "tts": "backhand index pointing left",
+ "glyph": "👈"
+ }, {
+ "unicode": "1f449",
+ "tts": "backhand index pointing right",
+ "glyph": "👉"
+ }, {
+ "unicode": "1f446",
+ "tts": "backhand index pointing up",
+ "glyph": "👆"
+ }, {
+ "unicode": "1f590-fe0f",
+ "tts": "hand with fingers splayed",
+ "glyph": "🖐️"
+ }, {
+ "unicode": "1faf0",
+ "tts": "hand with index finger and thumb crossed",
+ "glyph": "🫰"
+ }, {
+ "unicode": "1f91d",
+ "tts": "handshake",
+ "glyph": "🤝"
+ }, {
+ "unicode": "1faf2",
+ "tts": "leftwards hand",
+ "glyph": "🫲"
+ }, {
+ "unicode": "1faf5",
+ "tts": "index pointing at the viewer",
+ "glyph": "🫵"
+ }, {
+ "unicode": "1f919",
+ "tts": "call me hand",
+ "glyph": "🤙"
+ }, {
+ "unicode": "1f91e",
+ "tts": "crossed fingers",
+ "glyph": "🤞"
+ }, {
+ "unicode": "1f44f",
+ "tts": "clapping hands",
+ "glyph": "👏"
+ }, {
+ "unicode": "261d-fe0f",
+ "tts": "index pointing up",
+ "glyph": "☝️"
+ }, {
+ "unicode": "1f91f",
+ "tts": "love-you gesture",
+ "glyph": "🤟"
+ }, {
+ "unicode": "1faf6",
+ "tts": "heart hands",
+ "glyph": "🫶"
+ }, {
+ "unicode": "1f91b",
+ "tts": "left-facing fist",
+ "glyph": "🤛"
+ }, {
+ "unicode": "1f595",
+ "tts": "middle finger",
+ "glyph": "🖕"
+ }, {
+ "unicode": "1f44c",
+ "tts": "OK hand",
+ "glyph": "👌"
+ }, {
+ "unicode": "1f44a",
+ "tts": "oncoming fist",
+ "glyph": "👊"
+ }, {
+ "unicode": "1f450",
+ "tts": "open hands",
+ "glyph": "👐"
+ }, {
+ "unicode": "1faf3",
+ "tts": "palm down hand",
+ "glyph": "🫳"
+ }, {
+ "unicode": "1faf4",
+ "tts": "palm up hand",
+ "glyph": "🫴"
+ }, {
+ "unicode": "1f932",
+ "tts": "palms up together",
+ "glyph": "🤲"
+ }, {
+ "unicode": "1f90f",
+ "tts": "pinching hand",
+ "glyph": "🤏"
+ }, {
+ "unicode": "1f90c",
+ "tts": "pinched fingers",
+ "glyph": "🤌"
+ }, {
+ "unicode": "1f91c",
+ "tts": "right-facing fist",
+ "glyph": "🤜"
+ }, {
+ "unicode": "1faf1",
+ "tts": "rightwards hand",
+ "glyph": "🫱"
+ }, {
+ "unicode": "1f44e",
+ "tts": "thumbs down",
+ "glyph": "👎"
+ }, {
+ "unicode": "1f44d",
+ "tts": "thumbs up",
+ "glyph": "👍"
+ }, {
+ "unicode": "270c-fe0f",
+ "tts": "victory hand",
+ "glyph": "✌️"
+ }, {
+ "unicode": "1f596",
+ "tts": "vulcan salute",
+ "glyph": "🖖"
+ }, {
+ "unicode": "1f918",
+ "tts": "sign of the horns",
+ "glyph": "🤘"
+ }, {
+ "unicode": "1f91a",
+ "tts": "raised back of hand",
+ "glyph": "🤚"
+ }, {
+ "unicode": "270a",
+ "tts": "raised fist",
+ "glyph": "✊"
+ }, {
+ "unicode": "270b",
+ "tts": "raised hand",
+ "glyph": "✋"
+ }, {
+ "unicode": "1f485",
+ "tts": "nail polish",
+ "glyph": "💅"
+ }, {
+ "unicode": "1f44b",
+ "tts": "waving hand",
+ "glyph": "👋"
+ }, {
+ "unicode": "1f64c",
+ "tts": "raising hands",
+ "glyph": "🙌"
+ }, {
+ "unicode": "270d-fe0f",
+ "tts": "writing hand",
+ "glyph": "✍️"
+ }, {
+ "unicode": "1f9b6",
+ "tts": "foot",
+ "glyph": "🦶"
+ }, {
+ "unicode": "1f4aa",
+ "tts": "flexed biceps",
+ "glyph": "💪"
+ }, {
+ "unicode": "1f9bb",
+ "tts": "ear with hearing aid",
+ "glyph": "🦻"
+ }, {
+ "unicode": "1f442",
+ "tts": "ear",
+ "glyph": "👂"
+ }, {
+ "unicode": "1f443",
+ "tts": "nose",
+ "glyph": "👃"
+ }, {
+ "unicode": "1f9b5",
+ "tts": "leg",
+ "glyph": "🦵"
+ }, {
+ "unicode": "1f9be",
+ "tts": "mechanical arm",
+ "glyph": "🦾"
+ }, {
+ "unicode": "1f9b4",
+ "tts": "bone",
+ "glyph": "🦴"
+ }, {
+ "unicode": "1f9bf",
+ "tts": "mechanical leg",
+ "glyph": "🦿"
+ }, {
+ "unicode": "1f468",
+ "tts": "man",
+ "glyph": "👨"
+ }, {
+ "unicode": "1f468-200d-1f9b1",
+ "tts": "man: curly hair",
+ "glyph": "👨🦱"
+ }, {
+ "unicode": "1f468-200d-1f9b2",
+ "tts": "man: bald",
+ "glyph": "👨🦲"
+ }, {
+ "unicode": "1f9d4-200d-2642-fe0f",
+ "tts": "man: beard",
+ "glyph": "🧔♂️"
+ }, {
+ "unicode": "1f471-200d-2642-fe0f",
+ "tts": "man: blond hair",
+ "glyph": "👱♂️"
+ }, {
+ "unicode": "1f468-200d-1f9b0",
+ "tts": "man: red hair",
+ "glyph": "👨🦰"
+ }, {
+ "unicode": "1f473-200d-2642-fe0f",
+ "tts": "man wearing turban",
+ "glyph": "👳♂️"
+ }, {
+ "unicode": "1f468-200d-1f9b3",
+ "tts": "man: white hair",
+ "glyph": "👨🦳"
+ }, {
+ "unicode": "1f9d1-200d-1f384",
+ "tts": "mx claus",
+ "glyph": "🧑🎄"
+ }, {
+ "unicode": "1f936",
+ "tts": "Mrs. Claus",
+ "glyph": "🤶"
+ }, {
+ "unicode": "1f9d2",
+ "tts": "child",
+ "glyph": "🧒"
+ }, {
+ "unicode": "1f474",
+ "tts": "old man",
+ "glyph": "👴"
+ }, {
+ "unicode": "1f475",
+ "tts": "old woman",
+ "glyph": "👵"
+ }, {
+ "unicode": "1f9d3",
+ "tts": "older person",
+ "glyph": "🧓"
+ }, {
+ "unicode": "1f466",
+ "tts": "boy",
+ "glyph": "👦"
+ }, {
+ "unicode": "1f9d1",
+ "tts": "person",
+ "glyph": "🧑"
+ }, {
+ "unicode": "1f9d1-200d-1f9b2",
+ "tts": "person: bald",
+ "glyph": "🧑🦲"
+ }, {
+ "unicode": "1f9d4",
+ "tts": "person: beard",
+ "glyph": "🧔"
+ }, {
+ "unicode": "1f9d1-200d-1f9b1",
+ "tts": "person: curly hair",
+ "glyph": "🧑🦱"
+ }, {
+ "unicode": "1f471",
+ "tts": "person: blond hair",
+ "glyph": "👱"
+ }, {
+ "unicode": "1f9d1-200d-1f9b0",
+ "tts": "person: red hair",
+ "glyph": "🧑🦰"
+ }, {
+ "unicode": "1f473",
+ "tts": "person wearing turban",
+ "glyph": "👳"
+ }, {
+ "unicode": "1f9d1-200d-1f9b3",
+ "tts": "person: white hair",
+ "glyph": "🧑🦳"
+ }, {
+ "unicode": "1f469-200d-1f9b1",
+ "tts": "woman: curly hair",
+ "glyph": "👩🦱"
+ }, {
+ "unicode": "1f469",
+ "tts": "woman",
+ "glyph": "👩"
+ }, {
+ "unicode": "1f467",
+ "tts": "girl",
+ "glyph": "👧"
+ }, {
+ "unicode": "1f9d4-200d-2640-fe0f",
+ "tts": "woman: beard",
+ "glyph": "🧔♀️"
+ }, {
+ "unicode": "1f469-200d-1f9b0",
+ "tts": "woman: red hair",
+ "glyph": "👩🦰"
+ }, {
+ "unicode": "1f473-200d-2640-fe0f",
+ "tts": "woman wearing turban",
+ "glyph": "👳♀️"
+ }, {
+ "unicode": "1f469-200d-1f9b3",
+ "tts": "woman: white hair",
+ "glyph": "👩🦳"
+ }, {
+ "unicode": "1f471-200d-2640-fe0f",
+ "tts": "woman: blond hair",
+ "glyph": "👱♀️"
+ }, {
+ "unicode": "1f476",
+ "tts": "baby",
+ "glyph": "👶"
+ }, {
+ "unicode": "1f469-200d-1f9b2",
+ "tts": "woman: bald",
+ "glyph": "👩🦲"
+ }, {
+ "unicode": "1f47c",
+ "tts": "baby angel",
+ "glyph": "👼"
+ }, {
+ "unicode": "1f385",
+ "tts": "Santa Claus",
+ "glyph": "🎅"
+ }, {
+ "unicode": "1f646",
+ "tts": "person gesturing OK",
+ "glyph": "🙆"
+ }, {
+ "unicode": "1f645",
+ "tts": "person gesturing NO",
+ "glyph": "🙅"
+ }, {
+ "unicode": "1f487",
+ "tts": "person getting haircut",
+ "glyph": "💇"
+ }, {
+ "unicode": "1f647",
+ "tts": "person bowing",
+ "glyph": "🙇"
+ }, {
+ "unicode": "1f934",
+ "tts": "prince",
+ "glyph": "🤴"
+ }, {
+ "unicode": "1f481-200d-2642-fe0f",
+ "tts": "man tipping hand",
+ "glyph": "💁♂️"
+ }, {
+ "unicode": "1f64b-200d-2642-fe0f",
+ "tts": "man raising hand",
+ "glyph": "🙋♂️"
+ }, {
+ "unicode": "1f931",
+ "tts": "breast-feeding",
+ "glyph": "🤱"
+ }, {
+ "unicode": "1f64e-200d-2642-fe0f",
+ "tts": "man pouting",
+ "glyph": "🙎♂️"
+ }, {
+ "unicode": "1f478",
+ "tts": "princess",
+ "glyph": "👸"
+ }, {
+ "unicode": "1f468-200d-1f527",
+ "tts": "man mechanic",
+ "glyph": "👨🔧"
+ }, {
+ "unicode": "1f9dc-200d-2642-fe0f",
+ "tts": "merman",
+ "glyph": "🧜♂️"
+ }, {
+ "unicode": "1f9d1-200d-1f4bc",
+ "tts": "office worker",
+ "glyph": "🧑💼"
+ }, {
+ "unicode": "1f468-200d-1f4bc",
+ "tts": "man office worker",
+ "glyph": "👨💼"
+ }, {
+ "unicode": "1f468-200d-2708-fe0f",
+ "tts": "man pilot",
+ "glyph": "👨✈️"
+ }, {
+ "unicode": "1f647-200d-2642-fe0f",
+ "tts": "man bowing",
+ "glyph": "🙇♂️"
+ }, {
+ "unicode": "1f93d-200d-2642-fe0f",
+ "tts": "man playing water polo",
+ "glyph": "🤽♂️"
+ }, {
+ "unicode": "1f46e-200d-2642-fe0f",
+ "tts": "man police officer",
+ "glyph": "👮♂️"
+ }, {
+ "unicode": "1f64b",
+ "tts": "person raising hand",
+ "glyph": "🙋"
+ }, {
+ "unicode": "1f926-200d-2642-fe0f",
+ "tts": "man facepalming",
+ "glyph": "🤦♂️"
+ }, {
+ "unicode": "1f468-200d-1f3ed",
+ "tts": "man factory worker",
+ "glyph": "👨🏭"
+ }, {
+ "unicode": "1f472",
+ "tts": "person with skullcap",
+ "glyph": "👲"
+ }, {
+ "unicode": "1f9b8",
+ "tts": "superhero",
+ "glyph": "🦸"
+ }, {
+ "unicode": "1f468-200d-1f52c",
+ "tts": "man scientist",
+ "glyph": "👨🔬"
+ }, {
+ "unicode": "1f937-200d-2642-fe0f",
+ "tts": "man shrugging",
+ "glyph": "🤷♂️"
+ }, {
+ "unicode": "1f468-200d-1f3a4",
+ "tts": "man singer",
+ "glyph": "👨🎤"
+ }, {
+ "unicode": "1f937",
+ "tts": "person shrugging",
+ "glyph": "🤷"
+ }, {
+ "unicode": "1f64d",
+ "tts": "person frowning",
+ "glyph": "🙍"
+ }, {
+ "unicode": "1f3c4-200d-2642-fe0f",
+ "tts": "man surfing",
+ "glyph": "🏄♂️"
+ }, {
+ "unicode": "1f9b9-200d-2642-fe0f",
+ "tts": "man supervillain",
+ "glyph": "🦹♂️"
+ }, {
+ "unicode": "1f9b8-200d-2642-fe0f",
+ "tts": "man superhero",
+ "glyph": "🦸♂️"
+ }, {
+ "unicode": "1f3ca-200d-2642-fe0f",
+ "tts": "man swimming",
+ "glyph": "🏊♂️"
+ }, {
+ "unicode": "1f468-200d-1f3eb",
+ "tts": "man teacher",
+ "glyph": "👨🏫"
+ }, {
+ "unicode": "1f9d6",
+ "tts": "person in steamy room",
+ "glyph": "🧖"
+ }, {
+ "unicode": "1f9db-200d-2642-fe0f",
+ "tts": "man vampire",
+ "glyph": "🧛♂️"
+ }, {
+ "unicode": "1f645-200d-2640-fe0f",
+ "tts": "woman gesturing NO",
+ "glyph": "🙅♀️"
+ }, {
+ "unicode": "1f468-200d-1f3a8",
+ "tts": "man artist",
+ "glyph": "👨🎨"
+ }, {
+ "unicode": "1f469-200d-2696-fe0f",
+ "tts": "woman judge",
+ "glyph": "👩⚖️"
+ }, {
+ "unicode": "1f935-200d-2640-fe0f",
+ "tts": "woman in tuxedo",
+ "glyph": "🤵♀️"
+ }, {
+ "unicode": "1f64d-200d-2640-fe0f",
+ "tts": "woman frowning",
+ "glyph": "🙍♀️"
+ }, {
+ "unicode": "1f470-200d-2642-fe0f",
+ "tts": "man with veil",
+ "glyph": "👰♂️"
+ }, {
+ "unicode": "1f469-200d-1f692",
+ "tts": "woman firefighter",
+ "glyph": "👩🚒"
+ }, {
+ "unicode": "1f9df-200d-2642-fe0f",
+ "tts": "man zombie",
+ "glyph": "🧟♂️"
+ }, {
+ "unicode": "1f9d1-200d-1f527",
+ "tts": "mechanic",
+ "glyph": "🧑🔧"
+ }, {
+ "unicode": "1f465",
+ "tts": "busts in silhouette",
+ "glyph": "👥"
+ }, {
+ "unicode": "1fae6",
+ "tts": "biting lip",
+ "glyph": "🫦"
+ }, {
+ "unicode": "1f464",
+ "tts": "bust in silhouette",
+ "glyph": "👤"
+ }, {
+ "unicode": "1f444",
+ "tts": "mouth",
+ "glyph": "👄"
+ }, {
+ "unicode": "26f9-fe0f-200d-2642-fe0f",
+ "tts": "man bouncing ball",
+ "glyph": "⛹️♂️"
+ }, {
+ "unicode": "1f468-200d-1f680",
+ "tts": "man astronaut",
+ "glyph": "👨🚀"
+ }, {
+ "unicode": "1f482",
+ "tts": "guard",
+ "glyph": "💂"
+ }, {
+ "unicode": "1f977",
+ "tts": "ninja",
+ "glyph": "🥷"
+ }, {
+ "unicode": "1f9d1-200d-1f680",
+ "tts": "astronaut",
+ "glyph": "🧑🚀"
+ }, {
+ "unicode": "1f6b5-200d-2642-fe0f",
+ "tts": "man mountain biking",
+ "glyph": "🚵♂️"
+ }, {
+ "unicode": "1f93e-200d-2642-fe0f",
+ "tts": "man playing handball",
+ "glyph": "🤾♂️"
+ }, {
+ "unicode": "1f938-200d-2642-fe0f",
+ "tts": "man cartwheeling",
+ "glyph": "🤸♂️"
+ }, {
+ "unicode": "1f9d7-200d-2642-fe0f",
+ "tts": "man climbing",
+ "glyph": "🧗♂️"
+ }, {
+ "unicode": "1f477-200d-2642-fe0f",
+ "tts": "man construction worker",
+ "glyph": "👷♂️"
+ }, {
+ "unicode": "1f468-200d-1f373",
+ "tts": "man cook",
+ "glyph": "👨🍳"
+ }, {
+ "unicode": "1f477",
+ "tts": "construction worker",
+ "glyph": "👷"
+ }, {
+ "unicode": "1f9d1-200d-1f373",
+ "tts": "cook",
+ "glyph": "🧑🍳"
+ }, {
+ "unicode": "1f9d1-200d-2696-fe0f",
+ "tts": "judge",
+ "glyph": "🧑⚖️"
+ }, {
+ "unicode": "1f575-fe0f",
+ "tts": "detective",
+ "glyph": "🕵️"
+ }, {
+ "unicode": "1fac2",
+ "tts": "people hugging",
+ "glyph": "🫂"
+ }, {
+ "unicode": "1fac1",
+ "tts": "lungs",
+ "glyph": "🫁"
+ }, {
+ "unicode": "1f57a",
+ "tts": "man dancing",
+ "glyph": "🕺"
+ }, {
+ "unicode": "1f93d-200d-2640-fe0f",
+ "tts": "woman playing water polo",
+ "glyph": "🤽♀️"
+ }, {
+ "unicode": "1f6b4",
+ "tts": "person biking",
+ "glyph": "🚴"
+ }, {
+ "unicode": "1f6b4-200d-2640-fe0f",
+ "tts": "woman biking",
+ "glyph": "🚴♀️"
+ }, {
+ "unicode": "26f9-fe0f",
+ "tts": "person bouncing ball",
+ "glyph": "⛹️"
+ }, {
+ "unicode": "1f9d9-200d-2642-fe0f",
+ "tts": "man mage",
+ "glyph": "🧙♂️"
+ }, {
+ "unicode": "1f938",
+ "tts": "person cartwheeling",
+ "glyph": "🤸"
+ }, {
+ "unicode": "1f9d7",
+ "tts": "person climbing",
+ "glyph": "🧗"
+ }, {
+ "unicode": "1f575-fe0f-200d-2642-fe0f",
+ "tts": "man detective",
+ "glyph": "🕵️♂️"
+ }, {
+ "unicode": "1f9cf",
+ "tts": "deaf person",
+ "glyph": "🧏"
+ }, {
+ "unicode": "1f9dd",
+ "tts": "elf",
+ "glyph": "🧝"
+ }, {
+ "unicode": "1f926",
+ "tts": "person facepalming",
+ "glyph": "🤦"
+ }, {
+ "unicode": "1f9da",
+ "tts": "fairy",
+ "glyph": "🧚"
+ }, {
+ "unicode": "1f9d1-200d-1f37c",
+ "tts": "person feeding baby",
+ "glyph": "🧑🍼"
+ }, {
+ "unicode": "1f93a",
+ "tts": "person fencing",
+ "glyph": "🤺"
+ }, {
+ "unicode": "1f468-200d-1f393",
+ "tts": "man student",
+ "glyph": "👨🎓"
+ }, {
+ "unicode": "1f9de",
+ "tts": "genie",
+ "glyph": "🧞"
+ }, {
+ "unicode": "1f935-200d-2642-fe0f",
+ "tts": "man in tuxedo",
+ "glyph": "🤵♂️"
+ }, {
+ "unicode": "1f9d8-200d-2642-fe0f",
+ "tts": "man in lotus position",
+ "glyph": "🧘♂️"
+ }, {
+ "unicode": "1f468-200d-2696-fe0f",
+ "tts": "man judge",
+ "glyph": "👨⚖️"
+ }, {
+ "unicode": "1f486",
+ "tts": "person getting massage",
+ "glyph": "💆"
+ }, {
+ "unicode": "1f3cc-fe0f",
+ "tts": "person golfing",
+ "glyph": "🏌️"
+ }, {
+ "unicode": "1f6cc",
+ "tts": "person in bed",
+ "glyph": "🛌"
+ }, {
+ "unicode": "1f9d8",
+ "tts": "person in lotus position",
+ "glyph": "🧘"
+ }, {
+ "unicode": "1f574-fe0f",
+ "tts": "person in suit levitating",
+ "glyph": "🕴️"
+ }, {
+ "unicode": "1f9d1-200d-1f9bc",
+ "tts": "person in motorized wheelchair",
+ "glyph": "🧑🦼"
+ }, {
+ "unicode": "1f468-200d-1f9bc",
+ "tts": "man in motorized wheelchair",
+ "glyph": "👨🦼"
+ }, {
+ "unicode": "1f9d1-200d-1f9bd",
+ "tts": "person in manual wheelchair",
+ "glyph": "🧑🦽"
+ }, {
+ "unicode": "1f935",
+ "tts": "person in tuxedo",
+ "glyph": "🤵"
+ }, {
+ "unicode": "1f939",
+ "tts": "person juggling",
+ "glyph": "🤹"
+ }, {
+ "unicode": "1f9ce",
+ "tts": "person kneeling",
+ "glyph": "🧎"
+ }, {
+ "unicode": "1f3cb-fe0f",
+ "tts": "person lifting weights",
+ "glyph": "🏋️"
+ }, {
+ "unicode": "1f9d9",
+ "tts": "mage",
+ "glyph": "🧙"
+ }, {
+ "unicode": "1f9dc",
+ "tts": "merperson",
+ "glyph": "🧜"
+ }, {
+ "unicode": "1f6b5",
+ "tts": "person mountain biking",
+ "glyph": "🚵"
+ }, {
+ "unicode": "1f93e",
+ "tts": "person playing handball",
+ "glyph": "🤾"
+ }, {
+ "unicode": "1f93d",
+ "tts": "person playing water polo",
+ "glyph": "🤽"
+ }, {
+ "unicode": "1f64e",
+ "tts": "person pouting",
+ "glyph": "🙎"
+ }, {
+ "unicode": "1f3cb-fe0f-200d-2642-fe0f",
+ "tts": "man lifting weights",
+ "glyph": "🏋️♂️"
+ }, {
+ "unicode": "1f939-200d-2642-fe0f",
+ "tts": "man juggling",
+ "glyph": "🤹♂️"
+ }, {
+ "unicode": "1f6a3",
+ "tts": "person rowing boat",
+ "glyph": "🚣"
+ }, {
+ "unicode": "1f3c3",
+ "tts": "person running",
+ "glyph": "🏃"
+ }, {
+ "unicode": "1f9cd-200d-2642-fe0f",
+ "tts": "man standing",
+ "glyph": "🧍♂️"
+ }, {
+ "unicode": "1f9cd",
+ "tts": "person standing",
+ "glyph": "🧍"
+ }, {
+ "unicode": "1f3c3-200d-2642-fe0f",
+ "tts": "man running",
+ "glyph": "🏃♂️"
+ }, {
+ "unicode": "1f9b9",
+ "tts": "supervillain",
+ "glyph": "🦹"
+ }, {
+ "unicode": "1f3c4",
+ "tts": "person surfing",
+ "glyph": "🏄"
+ }, {
+ "unicode": "1f3ca",
+ "tts": "person swimming",
+ "glyph": "🏊"
+ }, {
+ "unicode": "1f6c0",
+ "tts": "person taking bath",
+ "glyph": "🛀"
+ }, {
+ "unicode": "1f469-200d-1f680",
+ "tts": "woman astronaut",
+ "glyph": "👩🚀"
+ }, {
+ "unicode": "1f9db",
+ "tts": "vampire",
+ "glyph": "🧛"
+ }, {
+ "unicode": "1f6b6",
+ "tts": "person walking",
+ "glyph": "🚶"
+ }, {
+ "unicode": "1f9ce-200d-2642-fe0f",
+ "tts": "man kneeling",
+ "glyph": "🧎♂️"
+ }, {
+ "unicode": "1f9da-200d-2642-fe0f",
+ "tts": "man fairy",
+ "glyph": "🧚♂️"
+ }, {
+ "unicode": "1f46f",
+ "tts": "people with bunny ears",
+ "glyph": "👯"
+ }, {
+ "unicode": "1fac5",
+ "tts": "person with crown",
+ "glyph": "🫅"
+ }, {
+ "unicode": "1f6a3-200d-2642-fe0f",
+ "tts": "man rowing boat",
+ "glyph": "🚣♂️"
+ }, {
+ "unicode": "1f470",
+ "tts": "person with veil",
+ "glyph": "👰"
+ }, {
+ "unicode": "1f9d1-200d-1f9af",
+ "tts": "person with white cane",
+ "glyph": "🧑🦯"
+ }, {
+ "unicode": "1f93c",
+ "tts": "people wrestling",
+ "glyph": "🤼"
+ }, {
+ "unicode": "1f9df",
+ "tts": "zombie",
+ "glyph": "🧟"
+ }, {
+ "unicode": "1f9d1-200d-2708-fe0f",
+ "tts": "pilot",
+ "glyph": "🧑✈️"
+ }, {
+ "unicode": "1f3c7",
+ "tts": "horse racing",
+ "glyph": "🏇"
+ }, {
+ "unicode": "1f468-200d-1f37c",
+ "tts": "man feeding baby",
+ "glyph": "👨🍼"
+ }, {
+ "unicode": "1f46e",
+ "tts": "police officer",
+ "glyph": "👮"
+ }, {
+ "unicode": "1fac3",
+ "tts": "pregnant man",
+ "glyph": "🫃"
+ }, {
+ "unicode": "1fac4",
+ "tts": "pregnant person",
+ "glyph": "🫄"
+ }, {
+ "unicode": "1f930",
+ "tts": "pregnant woman",
+ "glyph": "🤰"
+ }, {
+ "unicode": "1f468-200d-1f9bd",
+ "tts": "man in manual wheelchair",
+ "glyph": "👨🦽"
+ }, {
+ "unicode": "1f9d6-200d-2642-fe0f",
+ "tts": "man in steamy room",
+ "glyph": "🧖♂️"
+ }, {
+ "unicode": "1f482-200d-2642-fe0f",
+ "tts": "man guard",
+ "glyph": "💂♂️"
+ }, {
+ "unicode": "1f463",
+ "tts": "footprints",
+ "glyph": "👣"
+ }, {
+ "unicode": "1f468-200d-1f692",
+ "tts": "man firefighter",
+ "glyph": "👨🚒"
+ }, {
+ "unicode": "1fac0",
+ "tts": "anatomical heart",
+ "glyph": "🫀"
+ }, {
+ "unicode": "1f441-fe0f",
+ "tts": "eye",
+ "glyph": "👁️"
+ }, {
+ "unicode": "1f440",
+ "tts": "eyes",
+ "glyph": "👀"
+ }, {
+ "unicode": "1f468-200d-2695-fe0f",
+ "tts": "man health worker",
+ "glyph": "👨⚕️"
+ }, {
+ "unicode": "1f9d1-200d-1f52c",
+ "tts": "scientist",
+ "glyph": "🧑🔬"
+ }, {
+ "unicode": "1f933",
+ "tts": "selfie",
+ "glyph": "🤳"
+ }, {
+ "unicode": "1f64f",
+ "tts": "folded hands",
+ "glyph": "🙏"
+ }, {
+ "unicode": "1f9d1-200d-1f3a4",
+ "tts": "singer",
+ "glyph": "🧑🎤"
+ }, {
+ "unicode": "26f7-fe0f",
+ "tts": "skier",
+ "glyph": "⛷️"
+ }, {
+ "unicode": "1f3c2",
+ "tts": "snowboarder",
+ "glyph": "🏂"
+ }, {
+ "unicode": "1f5e3-fe0f",
+ "tts": "speaking head",
+ "glyph": "🗣️"
+ }, {
+ "unicode": "1f9d1-200d-1f393",
+ "tts": "student",
+ "glyph": "🧑🎓"
+ }, {
+ "unicode": "1f9d1-200d-1f3eb",
+ "tts": "teacher",
+ "glyph": "🧑🏫"
+ }, {
+ "unicode": "1f9d1-200d-1f3ed",
+ "tts": "factory worker",
+ "glyph": "🧑🏭"
+ }, {
+ "unicode": "1f9d1-200d-1f33e",
+ "tts": "farmer",
+ "glyph": "🧑🌾"
+ }, {
+ "unicode": "1f445",
+ "tts": "tongue",
+ "glyph": "👅"
+ }, {
+ "unicode": "1f9b7",
+ "tts": "tooth",
+ "glyph": "🦷"
+ }, {
+ "unicode": "1f9cc",
+ "tts": "troll",
+ "glyph": "🧌"
+ }, {
+ "unicode": "1f9d1-200d-1f692",
+ "tts": "firefighter",
+ "glyph": "🧑🚒"
+ }, {
+ "unicode": "1f9e0",
+ "tts": "brain",
+ "glyph": "🧠"
+ }, {
+ "unicode": "1f9d1-200d-2695-fe0f",
+ "tts": "health worker",
+ "glyph": "🧑⚕️"
+ }, {
+ "unicode": "1f486-200d-2642-fe0f",
+ "tts": "man getting massage",
+ "glyph": "💆♂️"
+ }, {
+ "unicode": "1f469-200d-1f3a8",
+ "tts": "woman artist",
+ "glyph": "👩🎨"
+ }, {
+ "unicode": "1f481",
+ "tts": "person tipping hand",
+ "glyph": "💁"
+ }, {
+ "unicode": "1f3cc-fe0f-200d-2642-fe0f",
+ "tts": "man golfing",
+ "glyph": "🏌️♂️"
+ }, {
+ "unicode": "1f64d-200d-2642-fe0f",
+ "tts": "man frowning",
+ "glyph": "🙍♂️"
+ }, {
+ "unicode": "1f9dd-200d-2642-fe0f",
+ "tts": "man elf",
+ "glyph": "🧝♂️"
+ }, {
+ "unicode": "1f487-200d-2642-fe0f",
+ "tts": "man getting haircut",
+ "glyph": "💇♂️"
+ }, {
+ "unicode": "26f9-fe0f-200d-2640-fe0f",
+ "tts": "woman bouncing ball",
+ "glyph": "⛹️♀️"
+ }, {
+ "unicode": "1f647-200d-2640-fe0f",
+ "tts": "woman bowing",
+ "glyph": "🙇♀️"
+ }, {
+ "unicode": "1f938-200d-2640-fe0f",
+ "tts": "woman cartwheeling",
+ "glyph": "🤸♀️"
+ }, {
+ "unicode": "1f9d7-200d-2640-fe0f",
+ "tts": "woman climbing",
+ "glyph": "🧗♀️"
+ }, {
+ "unicode": "1f477-200d-2640-fe0f",
+ "tts": "woman construction worker",
+ "glyph": "👷♀️"
+ }, {
+ "unicode": "1f469-200d-1f373",
+ "tts": "woman cook",
+ "glyph": "👩🍳"
+ }, {
+ "unicode": "1f468-200d-1f33e",
+ "tts": "man farmer",
+ "glyph": "👨🌾"
+ }, {
+ "unicode": "1f483",
+ "tts": "woman dancing",
+ "glyph": "💃"
+ }, {
+ "unicode": "1f9cf-200d-2640-fe0f",
+ "tts": "deaf woman",
+ "glyph": "🧏♀️"
+ }, {
+ "unicode": "1f575-fe0f-200d-2640-fe0f",
+ "tts": "woman detective",
+ "glyph": "🕵️♀️"
+ }, {
+ "unicode": "1f9dd-200d-2640-fe0f",
+ "tts": "woman elf",
+ "glyph": "🧝♀️"
+ }, {
+ "unicode": "1f926-200d-2640-fe0f",
+ "tts": "woman facepalming",
+ "glyph": "🤦♀️"
+ }, {
+ "unicode": "1f469-200d-1f3ed",
+ "tts": "woman factory worker",
+ "glyph": "👩🏭"
+ }, {
+ "unicode": "1f9da-200d-2640-fe0f",
+ "tts": "woman fairy",
+ "glyph": "🧚♀️"
+ }, {
+ "unicode": "1f469-200d-1f33e",
+ "tts": "woman farmer",
+ "glyph": "👩🌾"
+ }, {
+ "unicode": "1f469-200d-1f37c",
+ "tts": "woman feeding baby",
+ "glyph": "👩🍼"
+ }, {
+ "unicode": "1f93c-200d-2642-fe0f",
+ "tts": "men wrestling",
+ "glyph": "🤼♂️"
+ }, {
+ "unicode": "1f468-200d-1f9af",
+ "tts": "man with white cane",
+ "glyph": "👨🦯"
+ }, {
+ "unicode": "1f9de-200d-2640-fe0f",
+ "tts": "woman genie",
+ "glyph": "🧞♀️"
+ }, {
+ "unicode": "1f6b6-200d-2642-fe0f",
+ "tts": "man walking",
+ "glyph": "🚶♂️"
+ }, {
+ "unicode": "1f646-200d-2640-fe0f",
+ "tts": "woman gesturing OK",
+ "glyph": "🙆♀️"
+ }, {
+ "unicode": "1f487-200d-2640-fe0f",
+ "tts": "woman getting haircut",
+ "glyph": "💇♀️"
+ }, {
+ "unicode": "1f486-200d-2640-fe0f",
+ "tts": "woman getting massage",
+ "glyph": "💆♀️"
+ }, {
+ "unicode": "1f3cc-fe0f-200d-2640-fe0f",
+ "tts": "woman golfing",
+ "glyph": "🏌️♀️"
+ }, {
+ "unicode": "1f482-200d-2640-fe0f",
+ "tts": "woman guard",
+ "glyph": "💂♀️"
+ }, {
+ "unicode": "1f469-200d-2695-fe0f",
+ "tts": "woman health worker",
+ "glyph": "👩⚕️"
+ }, {
+ "unicode": "1f9d8-200d-2640-fe0f",
+ "tts": "woman in lotus position",
+ "glyph": "🧘♀️"
+ }, {
+ "unicode": "1f469-200d-1f9bd",
+ "tts": "woman in manual wheelchair",
+ "glyph": "👩🦽"
+ }, {
+ "unicode": "1f469-200d-1f9bc",
+ "tts": "woman in motorized wheelchair",
+ "glyph": "👩🦼"
+ }, {
+ "unicode": "1f9d6-200d-2640-fe0f",
+ "tts": "woman in steamy room",
+ "glyph": "🧖♀️"
+ }, {
+ "unicode": "1f46f-200d-2642-fe0f",
+ "tts": "men with bunny ears",
+ "glyph": "👯♂️"
+ }, {
+ "unicode": "1f6b4-200d-2642-fe0f",
+ "tts": "man biking",
+ "glyph": "🚴♂️"
+ }, {
+ "unicode": "1f939-200d-2640-fe0f",
+ "tts": "woman juggling",
+ "glyph": "🤹♀️"
+ }, {
+ "unicode": "1f9ce-200d-2640-fe0f",
+ "tts": "woman kneeling",
+ "glyph": "🧎♀️"
+ }, {
+ "unicode": "1f3cb-fe0f-200d-2640-fe0f",
+ "tts": "woman lifting weights",
+ "glyph": "🏋️♀️"
+ }, {
+ "unicode": "1f9d9-200d-2640-fe0f",
+ "tts": "woman mage",
+ "glyph": "🧙♀️"
+ }, {
+ "unicode": "1f469-200d-1f527",
+ "tts": "woman mechanic",
+ "glyph": "👩🔧"
+ }, {
+ "unicode": "1f9dc-200d-2640-fe0f",
+ "tts": "mermaid",
+ "glyph": "🧜♀️"
+ }, {
+ "unicode": "1f6b5-200d-2640-fe0f",
+ "tts": "woman mountain biking",
+ "glyph": "🚵♀️"
+ }, {
+ "unicode": "1f469-200d-1f4bc",
+ "tts": "woman office worker",
+ "glyph": "👩💼"
+ }, {
+ "unicode": "1f469-200d-2708-fe0f",
+ "tts": "woman pilot",
+ "glyph": "👩✈️"
+ }, {
+ "unicode": "1f93e-200d-2640-fe0f",
+ "tts": "woman playing handball",
+ "glyph": "🤾♀️"
+ }, {
+ "unicode": "1f9cf-200d-2642-fe0f",
+ "tts": "deaf man",
+ "glyph": "🧏♂️"
+ }, {
+ "unicode": "1f46e-200d-2640-fe0f",
+ "tts": "woman police officer",
+ "glyph": "👮♀️"
+ }, {
+ "unicode": "1f64e-200d-2640-fe0f",
+ "tts": "woman pouting",
+ "glyph": "🙎♀️"
+ }, {
+ "unicode": "1f64b-200d-2640-fe0f",
+ "tts": "woman raising hand",
+ "glyph": "🙋♀️"
+ }, {
+ "unicode": "1f9de-200d-2642-fe0f",
+ "tts": "man genie",
+ "glyph": "🧞♂️"
+ }, {
+ "unicode": "1f6a3-200d-2640-fe0f",
+ "tts": "woman rowing boat",
+ "glyph": "🚣♀️"
+ }, {
+ "unicode": "1f3c3-200d-2640-fe0f",
+ "tts": "woman running",
+ "glyph": "🏃♀️"
+ }, {
+ "unicode": "1f469-200d-1f52c",
+ "tts": "woman scientist",
+ "glyph": "👩🔬"
+ }, {
+ "unicode": "1f937-200d-2640-fe0f",
+ "tts": "woman shrugging",
+ "glyph": "🤷♀️"
+ }, {
+ "unicode": "1f469-200d-1f3a4",
+ "tts": "woman singer",
+ "glyph": "👩🎤"
+ }, {
+ "unicode": "1f9cd-200d-2640-fe0f",
+ "tts": "woman standing",
+ "glyph": "🧍♀️"
+ }, {
+ "unicode": "1f469-200d-1f393",
+ "tts": "woman student",
+ "glyph": "👩🎓"
+ }, {
+ "unicode": "1f9b8-200d-2640-fe0f",
+ "tts": "woman superhero",
+ "glyph": "🦸♀️"
+ }, {
+ "unicode": "1f9b9-200d-2640-fe0f",
+ "tts": "woman supervillain",
+ "glyph": "🦹♀️"
+ }, {
+ "unicode": "1f3c4-200d-2640-fe0f",
+ "tts": "woman surfing",
+ "glyph": "🏄♀️"
+ }, {
+ "unicode": "1f3ca-200d-2640-fe0f",
+ "tts": "woman swimming",
+ "glyph": "🏊♀️"
+ }, {
+ "unicode": "1f469-200d-1f3eb",
+ "tts": "woman teacher",
+ "glyph": "👩🏫"
+ }, {
+ "unicode": "1f481-200d-2640-fe0f",
+ "tts": "woman tipping hand",
+ "glyph": "💁♀️"
+ }, {
+ "unicode": "1f9db-200d-2640-fe0f",
+ "tts": "woman vampire",
+ "glyph": "🧛♀️"
+ }, {
+ "unicode": "1f6b6-200d-2640-fe0f",
+ "tts": "woman walking",
+ "glyph": "🚶♀️"
+ }, {
+ "unicode": "1f645-200d-2642-fe0f",
+ "tts": "man gesturing NO",
+ "glyph": "🙅♂️"
+ }, {
+ "unicode": "1f646-200d-2642-fe0f",
+ "tts": "man gesturing OK",
+ "glyph": "🙆♂️"
+ }, {
+ "unicode": "1f46f-200d-2640-fe0f",
+ "tts": "women with bunny ears",
+ "glyph": "👯♀️"
+ }, {
+ "unicode": "1f9d5",
+ "tts": "woman with headscarf",
+ "glyph": "🧕"
+ }, {
+ "unicode": "1f470-200d-2640-fe0f",
+ "tts": "woman with veil",
+ "glyph": "👰♀️"
+ }, {
+ "unicode": "1f469-200d-1f9af",
+ "tts": "woman with white cane",
+ "glyph": "👩🦯"
+ }, {
+ "unicode": "1f93c-200d-2640-fe0f",
+ "tts": "women wrestling",
+ "glyph": "🤼♀️"
+ }, {
+ "unicode": "1f9df-200d-2640-fe0f",
+ "tts": "woman zombie",
+ "glyph": "🧟♀️"
+ }, {
+ "unicode": "1f9d1-200d-1f3a8",
+ "tts": "artist",
+ "glyph": "🧑🎨"
+ }]
+ },
+ {
+ "name": "食物",
+ "emoji": [{
+ "unicode": "1f3fa",
+ "tts": "amphora",
+ "glyph": "🏺"
+ },
+ {
+ "unicode": "1f951",
+ "tts": "avocado",
+ "glyph": "🥑"
+ },
+ {
+ "unicode": "1f37c",
+ "tts": "baby bottle",
+ "glyph": "🍼"
+ },
+ {
+ "unicode": "1f953",
+ "tts": "bacon",
+ "glyph": "🥓"
+ },
+ {
+ "unicode": "1f96f",
+ "tts": "bagel",
+ "glyph": "🥯"
+ },
+ {
+ "unicode": "1f956",
+ "tts": "baguette bread",
+ "glyph": "🥖"
+ },
+ {
+ "unicode": "1f34c",
+ "tts": "banana",
+ "glyph": "🍌"
+ },
+ {
+ "unicode": "1fad8",
+ "tts": "beans",
+ "glyph": "🫘"
+ },
+ {
+ "unicode": "1f37a",
+ "tts": "beer mug",
+ "glyph": "🍺"
+ },
+ {
+ "unicode": "1fad1",
+ "tts": "bell pepper",
+ "glyph": "🫑"
+ },
+ {
+ "unicode": "1f371",
+ "tts": "bento box",
+ "glyph": "🍱"
+ },
+ {
+ "unicode": "1f9c3",
+ "tts": "beverage box",
+ "glyph": "🧃"
+ },
+ {
+ "unicode": "1f382",
+ "tts": "birthday cake",
+ "glyph": "🎂"
+ },
+ {
+ "unicode": "1fad0",
+ "tts": "blueberries",
+ "glyph": "🫐"
+ },
+ {
+ "unicode": "1f37e",
+ "tts": "bottle with popping cork",
+ "glyph": "🍾"
+ },
+ {
+ "unicode": "1f963",
+ "tts": "bowl with spoon",
+ "glyph": "🥣"
+ },
+ {
+ "unicode": "1f35e",
+ "tts": "bread",
+ "glyph": "🍞"
+ },
+ {
+ "unicode": "1f966",
+ "tts": "broccoli",
+ "glyph": "🥦"
+ },
+ {
+ "unicode": "1f9cb",
+ "tts": "bubble tea",
+ "glyph": "🧋"
+ },
+ {
+ "unicode": "1f32f",
+ "tts": "burrito",
+ "glyph": "🌯"
+ },
+ {
+ "unicode": "1f9c8",
+ "tts": "butter",
+ "glyph": "🧈"
+ },
+ {
+ "unicode": "1f36c",
+ "tts": "candy",
+ "glyph": "🍬"
+ },
+ {
+ "unicode": "1f96b",
+ "tts": "canned food",
+ "glyph": "🥫"
+ },
+ {
+ "unicode": "1f955",
+ "tts": "carrot",
+ "glyph": "🥕"
+ },
+ {
+ "unicode": "1f9c0",
+ "tts": "cheese wedge",
+ "glyph": "🧀"
+ },
+ {
+ "unicode": "1f352",
+ "tts": "cherries",
+ "glyph": "🍒"
+ },
+ {
+ "unicode": "1f330",
+ "tts": "chestnut",
+ "glyph": "🌰"
+ },
+ {
+ "unicode": "1f36b",
+ "tts": "chocolate bar",
+ "glyph": "🍫"
+ },
+ {
+ "unicode": "1f962",
+ "tts": "chopsticks",
+ "glyph": "🥢"
+ },
+ {
+ "unicode": "1f37b",
+ "tts": "clinking beer mugs",
+ "glyph": "🍻"
+ },
+ {
+ "unicode": "1f942",
+ "tts": "clinking glasses",
+ "glyph": "🥂"
+ },
+ {
+ "unicode": "1f378",
+ "tts": "cocktail glass",
+ "glyph": "🍸"
+ },
+ {
+ "unicode": "1f965",
+ "tts": "coconut",
+ "glyph": "🥥"
+ },
+ {
+ "unicode": "1f35a",
+ "tts": "cooked rice",
+ "glyph": "🍚"
+ },
+ {
+ "unicode": "1f36a",
+ "tts": "cookie",
+ "glyph": "🍪"
+ },
+ {
+ "unicode": "1f373",
+ "tts": "cooking",
+ "glyph": "🍳"
+ },
+ {
+ "unicode": "1f980",
+ "tts": "crab",
+ "glyph": "🦀"
+ },
+ {
+ "unicode": "1f950",
+ "tts": "croissant",
+ "glyph": "🥐"
+ },
+ {
+ "unicode": "1f952",
+ "tts": "cucumber",
+ "glyph": "🥒"
+ },
+ {
+ "unicode": "1f964",
+ "tts": "cup with straw",
+ "glyph": "🥤"
+ },
+ {
+ "unicode": "1f9c1",
+ "tts": "cupcake",
+ "glyph": "🧁"
+ },
+ {
+ "unicode": "1f35b",
+ "tts": "curry rice",
+ "glyph": "🍛"
+ },
+ {
+ "unicode": "1f36e",
+ "tts": "custard",
+ "glyph": "🍮"
+ },
+ {
+ "unicode": "1f969",
+ "tts": "cut of meat",
+ "glyph": "🥩"
+ },
+ {
+ "unicode": "1f361",
+ "tts": "dango",
+ "glyph": "🍡"
+ },
+ {
+ "unicode": "1f369",
+ "tts": "doughnut",
+ "glyph": "🍩"
+ },
+ {
+ "unicode": "1f95f",
+ "tts": "dumpling",
+ "glyph": "🥟"
+ },
+ {
+ "unicode": "1f33d",
+ "tts": "ear of corn",
+ "glyph": "🌽"
+ },
+ {
+ "unicode": "1f95a",
+ "tts": "egg",
+ "glyph": "🥚"
+ },
+ {
+ "unicode": "1f346",
+ "tts": "eggplant",
+ "glyph": "🍆"
+ },
+ {
+ "unicode": "1f9c6",
+ "tts": "falafel",
+ "glyph": "🧆"
+ },
+ {
+ "unicode": "1f365",
+ "tts": "fish cake with swirl",
+ "glyph": "🍥"
+ },
+ {
+ "unicode": "1fad3",
+ "tts": "flatbread",
+ "glyph": "🫓"
+ },
+ {
+ "unicode": "1fad5",
+ "tts": "fondue",
+ "glyph": "🫕"
+ },
+ {
+ "unicode": "1f374",
+ "tts": "fork and knife",
+ "glyph": "🍴"
+ },
+ {
+ "unicode": "1f37d-fe0f",
+ "tts": "fork and knife with plate",
+ "glyph": "🍽️"
+ },
+ {
+ "unicode": "1f960",
+ "tts": "fortune cookie",
+ "glyph": "🥠"
+ },
+ {
+ "unicode": "1f35f",
+ "tts": "french fries",
+ "glyph": "🍟"
+ },
+ {
+ "unicode": "1f364",
+ "tts": "fried shrimp",
+ "glyph": "🍤"
+ },
+ {
+ "unicode": "1f9c4",
+ "tts": "garlic",
+ "glyph": "🧄"
+ },
+ {
+ "unicode": "1f95b",
+ "tts": "glass of milk",
+ "glyph": "🥛"
+ },
+ {
+ "unicode": "1f347",
+ "tts": "grapes",
+ "glyph": "🍇"
+ },
+ {
+ "unicode": "1f34f",
+ "tts": "green apple",
+ "glyph": "🍏"
+ },
+ {
+ "unicode": "1f957",
+ "tts": "green salad",
+ "glyph": "🥗"
+ },
+ {
+ "unicode": "1f354",
+ "tts": "hamburger",
+ "glyph": "🍔"
+ },
+ {
+ "unicode": "1f36f",
+ "tts": "honey pot",
+ "glyph": "🍯"
+ },
+ {
+ "unicode": "2615",
+ "tts": "hot beverage",
+ "glyph": "☕"
+ },
+ {
+ "unicode": "1f32d",
+ "tts": "hot dog",
+ "glyph": "🌭"
+ },
+ {
+ "unicode": "1f336-fe0f",
+ "tts": "hot pepper",
+ "glyph": "🌶️"
+ },
+ {
+ "unicode": "1f9ca",
+ "tts": "ice",
+ "glyph": "🧊"
+ },
+ {
+ "unicode": "1f368",
+ "tts": "ice cream",
+ "glyph": "🍨"
+ },
+ {
+ "unicode": "1fad9",
+ "tts": "jar",
+ "glyph": "🫙"
+ },
+ {
+ "unicode": "1f52a",
+ "tts": "kitchen knife",
+ "glyph": "🔪"
+ },
+ {
+ "unicode": "1f95d",
+ "tts": "kiwi fruit",
+ "glyph": "🥝"
+ },
+ {
+ "unicode": "1f96c",
+ "tts": "leafy green",
+ "glyph": "🥬"
+ },
+ {
+ "unicode": "1f34b",
+ "tts": "lemon",
+ "glyph": "🍋"
+ },
+ {
+ "unicode": "1f99e",
+ "tts": "lobster",
+ "glyph": "🦞"
+ },
+ {
+ "unicode": "1f36d",
+ "tts": "lollipop",
+ "glyph": "🍭"
+ },
+ {
+ "unicode": "1f96d",
+ "tts": "mango",
+ "glyph": "🥭"
+ },
+ {
+ "unicode": "1f9c9",
+ "tts": "mate",
+ "glyph": "🧉"
+ },
+ {
+ "unicode": "1f356",
+ "tts": "meat on bone",
+ "glyph": "🍖"
+ },
+ {
+ "unicode": "1f348",
+ "tts": "melon",
+ "glyph": "🍈"
+ },
+ {
+ "unicode": "1f96e",
+ "tts": "moon cake",
+ "glyph": "🥮"
+ },
+ {
+ "unicode": "1f344",
+ "tts": "mushroom",
+ "glyph": "🍄"
+ },
+ {
+ "unicode": "1f362",
+ "tts": "oden",
+ "glyph": "🍢"
+ },
+ {
+ "unicode": "1fad2",
+ "tts": "olive",
+ "glyph": "🫒"
+ },
+ {
+ "unicode": "1f9c5",
+ "tts": "onion",
+ "glyph": "🧅"
+ },
+ {
+ "unicode": "1f9aa",
+ "tts": "oyster",
+ "glyph": "🦪"
+ },
+ {
+ "unicode": "1f95e",
+ "tts": "pancakes",
+ "glyph": "🥞"
+ },
+ {
+ "unicode": "1f351",
+ "tts": "peach",
+ "glyph": "🍑"
+ },
+ {
+ "unicode": "1f95c",
+ "tts": "peanuts",
+ "glyph": "🥜"
+ },
+ {
+ "unicode": "1f350",
+ "tts": "pear",
+ "glyph": "🍐"
+ },
+ {
+ "unicode": "1f967",
+ "tts": "pie",
+ "glyph": "🥧"
+ },
+ {
+ "unicode": "1f34d",
+ "tts": "pineapple",
+ "glyph": "🍍"
+ },
+ {
+ "unicode": "1f355",
+ "tts": "pizza",
+ "glyph": "🍕"
+ },
+ {
+ "unicode": "1f37f",
+ "tts": "popcorn",
+ "glyph": "🍿"
+ },
+ {
+ "unicode": "1f372",
+ "tts": "pot of food",
+ "glyph": "🍲"
+ },
+ {
+ "unicode": "1f954",
+ "tts": "potato",
+ "glyph": "🥔"
+ },
+ {
+ "unicode": "1f357",
+ "tts": "poultry leg",
+ "glyph": "🍗"
+ },
+ {
+ "unicode": "1fad7",
+ "tts": "pouring liquid",
+ "glyph": "🫗"
+ },
+ {
+ "unicode": "1f968",
+ "tts": "pretzel",
+ "glyph": "🥨"
+ },
+ {
+ "unicode": "1f34e",
+ "tts": "red apple",
+ "glyph": "🍎"
+ },
+ {
+ "unicode": "1f359",
+ "tts": "rice ball",
+ "glyph": "🍙"
+ },
+ {
+ "unicode": "1f358",
+ "tts": "rice cracker",
+ "glyph": "🍘"
+ },
+ {
+ "unicode": "1f360",
+ "tts": "roasted sweet potato",
+ "glyph": "🍠"
+ },
+ {
+ "unicode": "1f376",
+ "tts": "sake",
+ "glyph": "🍶"
+ },
+ {
+ "unicode": "1f9c2",
+ "tts": "salt",
+ "glyph": "🧂"
+ },
+ {
+ "unicode": "1f96a",
+ "tts": "sandwich",
+ "glyph": "🥪"
+ },
+ {
+ "unicode": "1f958",
+ "tts": "shallow pan of food",
+ "glyph": "🥘"
+ },
+ {
+ "unicode": "1f367",
+ "tts": "shaved ice",
+ "glyph": "🍧"
+ },
+ {
+ "unicode": "1f370",
+ "tts": "shortcake",
+ "glyph": "🍰"
+ },
+ {
+ "unicode": "1f990",
+ "tts": "shrimp",
+ "glyph": "🦐"
+ },
+ {
+ "unicode": "1f366",
+ "tts": "soft ice cream",
+ "glyph": "🍦"
+ },
+ {
+ "unicode": "1f35d",
+ "tts": "spaghetti",
+ "glyph": "🍝"
+ },
+ {
+ "unicode": "1f944",
+ "tts": "spoon",
+ "glyph": "🥄"
+ },
+ {
+ "unicode": "1f991",
+ "tts": "squid",
+ "glyph": "🦑"
+ },
+ {
+ "unicode": "1f35c",
+ "tts": "steaming bowl",
+ "glyph": "🍜"
+ },
+ {
+ "unicode": "1f353",
+ "tts": "strawberry",
+ "glyph": "🍓"
+ },
+ {
+ "unicode": "1f959",
+ "tts": "stuffed flatbread",
+ "glyph": "🥙"
+ },
+ {
+ "unicode": "1f363",
+ "tts": "sushi",
+ "glyph": "🍣"
+ },
+ {
+ "unicode": "1f32e",
+ "tts": "taco",
+ "glyph": "🌮"
+ },
+ {
+ "unicode": "1f961",
+ "tts": "takeout box",
+ "glyph": "🥡"
+ },
+ {
+ "unicode": "1fad4",
+ "tts": "tamale",
+ "glyph": "🫔"
+ },
+ {
+ "unicode": "1f34a",
+ "tts": "tangerine",
+ "glyph": "🍊"
+ },
+ {
+ "unicode": "1f375",
+ "tts": "teacup without handle",
+ "glyph": "🍵"
+ },
+ {
+ "unicode": "1fad6",
+ "tts": "teapot",
+ "glyph": "🫖"
+ },
+ {
+ "unicode": "1f345",
+ "tts": "tomato",
+ "glyph": "🍅"
+ },
+ {
+ "unicode": "1f379",
+ "tts": "tropical drink",
+ "glyph": "🍹"
+ },
+ {
+ "unicode": "1f943",
+ "tts": "tumbler glass",
+ "glyph": "🥃"
+ },
+ {
+ "unicode": "1f9c7",
+ "tts": "waffle",
+ "glyph": "🧇"
+ },
+ {
+ "unicode": "1f349",
+ "tts": "watermelon",
+ "glyph": "🍉"
+ },
+ {
+ "unicode": "1f377",
+ "tts": "wine glass",
+ "glyph": "🍷"
+ }
+ ]
+ },
+ {
+ "name": "动植物",
+ "emoji": [{
+ "unicode": "1f41c",
+ "tts": "ant",
+ "glyph": "🐜"
+ },
+ {
+ "unicode": "1f424",
+ "tts": "baby chick",
+ "glyph": "🐤"
+ },
+ {
+ "unicode": "1f9a1",
+ "tts": "badger",
+ "glyph": "🦡"
+ },
+ {
+ "unicode": "1f987",
+ "tts": "bat",
+ "glyph": "🦇"
+ },
+ {
+ "unicode": "1f43b",
+ "tts": "bear",
+ "glyph": "🐻"
+ },
+ {
+ "unicode": "1f9ab",
+ "tts": "beaver",
+ "glyph": "🦫"
+ },
+ {
+ "unicode": "1fab2",
+ "tts": "beetle",
+ "glyph": "🪲"
+ },
+ {
+ "unicode": "1f426",
+ "tts": "bird",
+ "glyph": "🐦"
+ },
+ {
+ "unicode": "1f9ac",
+ "tts": "bison",
+ "glyph": "🦬"
+ },
+ {
+ "unicode": "1f408-200d-2b1b",
+ "tts": "black cat",
+ "glyph": "🐈⬛"
+ },
+ {
+ "unicode": "1f33c",
+ "tts": "blossom",
+ "glyph": "🌼"
+ },
+ {
+ "unicode": "1f421",
+ "tts": "blowfish",
+ "glyph": "🐡"
+ },
+ {
+ "unicode": "1f417",
+ "tts": "boar",
+ "glyph": "🐗"
+ },
+ {
+ "unicode": "1f490",
+ "tts": "bouquet",
+ "glyph": "💐"
+ },
+ {
+ "unicode": "1f41b",
+ "tts": "bug",
+ "glyph": "🐛"
+ },
+ {
+ "unicode": "1f98b",
+ "tts": "butterfly",
+ "glyph": "🦋"
+ },
+ {
+ "unicode": "1f335",
+ "tts": "cactus",
+ "glyph": "🌵"
+ },
+ {
+ "unicode": "1f42a",
+ "tts": "camel",
+ "glyph": "🐪"
+ },
+ {
+ "unicode": "1f408",
+ "tts": "cat",
+ "glyph": "🐈"
+ },
+ {
+ "unicode": "1f431",
+ "tts": "cat face",
+ "glyph": "🐱"
+ },
+ {
+ "unicode": "1f338",
+ "tts": "cherry blossom",
+ "glyph": "🌸"
+ },
+ {
+ "unicode": "1f414",
+ "tts": "chicken",
+ "glyph": "🐔"
+ },
+ {
+ "unicode": "1f43f-fe0f",
+ "tts": "chipmunk",
+ "glyph": "🐿️"
+ },
+ {
+ "unicode": "1fab3",
+ "tts": "cockroach",
+ "glyph": "🪳"
+ },
+ {
+ "unicode": "1fab8",
+ "tts": "coral",
+ "glyph": "🪸"
+ },
+ {
+ "unicode": "1f404",
+ "tts": "cow",
+ "glyph": "🐄"
+ },
+ {
+ "unicode": "1f42e",
+ "tts": "cow face",
+ "glyph": "🐮"
+ },
+ {
+ "unicode": "1f997",
+ "tts": "cricket",
+ "glyph": "🦗"
+ },
+ {
+ "unicode": "1f40a",
+ "tts": "crocodile",
+ "glyph": "🐊"
+ },
+ {
+ "unicode": "1f333",
+ "tts": "deciduous tree",
+ "glyph": "🌳"
+ },
+ {
+ "unicode": "1f98c",
+ "tts": "deer",
+ "glyph": "🦌"
+ },
+ {
+ "unicode": "1f9a4",
+ "tts": "dodo",
+ "glyph": "🦤"
+ },
+ {
+ "unicode": "1f415",
+ "tts": "dog",
+ "glyph": "🐕"
+ },
+ {
+ "unicode": "1f436",
+ "tts": "dog face",
+ "glyph": "🐶"
+ },
+ {
+ "unicode": "1f42c",
+ "tts": "dolphin",
+ "glyph": "🐬"
+ },
+ {
+ "unicode": "1f54a-fe0f",
+ "tts": "dove",
+ "glyph": "🕊️"
+ },
+ {
+ "unicode": "1f409",
+ "tts": "dragon",
+ "glyph": "🐉"
+ },
+ {
+ "unicode": "1f432",
+ "tts": "dragon face",
+ "glyph": "🐲"
+ },
+ {
+ "unicode": "1f986",
+ "tts": "duck",
+ "glyph": "🦆"
+ },
+ {
+ "unicode": "1f985",
+ "tts": "eagle",
+ "glyph": "🦅"
+ },
+ {
+ "unicode": "1f418",
+ "tts": "elephant",
+ "glyph": "🐘"
+ },
+ {
+ "unicode": "1fab9",
+ "tts": "empty nest",
+ "glyph": "🪹"
+ },
+ {
+ "unicode": "1f332",
+ "tts": "evergreen tree",
+ "glyph": "🌲"
+ },
+ {
+ "unicode": "1f411",
+ "tts": "ewe",
+ "glyph": "🐑"
+ },
+ {
+ "unicode": "1f342",
+ "tts": "fallen leaf",
+ "glyph": "🍂"
+ },
+ {
+ "unicode": "1fab6",
+ "tts": "feather",
+ "glyph": "🪶"
+ },
+ {
+ "unicode": "1f41f",
+ "tts": "fish",
+ "glyph": "🐟"
+ },
+ {
+ "unicode": "1f9a9",
+ "tts": "flamingo",
+ "glyph": "🦩"
+ },
+ {
+ "unicode": "1fab0",
+ "tts": "fly",
+ "glyph": "🪰"
+ },
+ {
+ "unicode": "1f340",
+ "tts": "four leaf clover",
+ "glyph": "🍀"
+ },
+ {
+ "unicode": "1f98a",
+ "tts": "fox",
+ "glyph": "🦊"
+ },
+ {
+ "unicode": "1f438",
+ "tts": "frog",
+ "glyph": "🐸"
+ },
+ {
+ "unicode": "1f425",
+ "tts": "front-facing baby chick",
+ "glyph": "🐥"
+ },
+ {
+ "unicode": "1f992",
+ "tts": "giraffe",
+ "glyph": "🦒"
+ },
+ {
+ "unicode": "1f410",
+ "tts": "goat",
+ "glyph": "🐐"
+ },
+ {
+ "unicode": "1f98d",
+ "tts": "gorilla",
+ "glyph": "🦍"
+ },
+ {
+ "unicode": "1f9ae",
+ "tts": "guide dog",
+ "glyph": "🦮"
+ },
+ {
+ "unicode": "1f439",
+ "tts": "hamster",
+ "glyph": "🐹"
+ },
+ {
+ "unicode": "1f423",
+ "tts": "hatching chick",
+ "glyph": "🐣"
+ },
+ {
+ "unicode": "1f994",
+ "tts": "hedgehog",
+ "glyph": "🦔"
+ },
+ {
+ "unicode": "1f33f",
+ "tts": "herb",
+ "glyph": "🌿"
+ },
+ {
+ "unicode": "1f33a",
+ "tts": "hibiscus",
+ "glyph": "🌺"
+ },
+ {
+ "unicode": "1f99b",
+ "tts": "hippopotamus",
+ "glyph": "🦛"
+ },
+ {
+ "unicode": "1f41d",
+ "tts": "honeybee",
+ "glyph": "🐝"
+ },
+ {
+ "unicode": "1f40e",
+ "tts": "horse",
+ "glyph": "🐎"
+ },
+ {
+ "unicode": "1f434",
+ "tts": "horse face",
+ "glyph": "🐴"
+ },
+ {
+ "unicode": "1f998",
+ "tts": "kangaroo",
+ "glyph": "🦘"
+ },
+ {
+ "unicode": "1f428",
+ "tts": "koala",
+ "glyph": "🐨"
+ },
+ {
+ "unicode": "1f41e",
+ "tts": "lady beetle",
+ "glyph": "🐞"
+ },
+ {
+ "unicode": "1f343",
+ "tts": "leaf fluttering in wind",
+ "glyph": "🍃"
+ },
+ {
+ "unicode": "1f406",
+ "tts": "leopard",
+ "glyph": "🐆"
+ },
+ {
+ "unicode": "1f981",
+ "tts": "lion",
+ "glyph": "🦁"
+ },
+ {
+ "unicode": "1f98e",
+ "tts": "lizard",
+ "glyph": "🦎"
+ },
+ {
+ "unicode": "1f999",
+ "tts": "llama",
+ "glyph": "🦙"
+ },
+ {
+ "unicode": "1fab7",
+ "tts": "lotus",
+ "glyph": "🪷"
+ },
+ {
+ "unicode": "1f9a3",
+ "tts": "mammoth",
+ "glyph": "🦣"
+ },
+ {
+ "unicode": "1f341",
+ "tts": "maple leaf",
+ "glyph": "🍁"
+ },
+ {
+ "unicode": "1f9a0",
+ "tts": "microbe",
+ "glyph": "🦠"
+ },
+ {
+ "unicode": "1f412",
+ "tts": "monkey",
+ "glyph": "🐒"
+ },
+ {
+ "unicode": "1f435",
+ "tts": "monkey face",
+ "glyph": "🐵"
+ },
+ {
+ "unicode": "1f99f",
+ "tts": "mosquito",
+ "glyph": "🦟"
+ },
+ {
+ "unicode": "1f401",
+ "tts": "mouse",
+ "glyph": "🐁"
+ },
+ {
+ "unicode": "1f42d",
+ "tts": "mouse face",
+ "glyph": "🐭"
+ },
+ {
+ "unicode": "1faba",
+ "tts": "nest with eggs",
+ "glyph": "🪺"
+ },
+ {
+ "unicode": "1f419",
+ "tts": "octopus",
+ "glyph": "🐙"
+ },
+ {
+ "unicode": "1f9a7",
+ "tts": "orangutan",
+ "glyph": "🦧"
+ },
+ {
+ "unicode": "1f9a6",
+ "tts": "otter",
+ "glyph": "🦦"
+ },
+ {
+ "unicode": "1f989",
+ "tts": "owl",
+ "glyph": "🦉"
+ },
+ {
+ "unicode": "1f402",
+ "tts": "ox",
+ "glyph": "🐂"
+ },
+ {
+ "unicode": "1f334",
+ "tts": "palm tree",
+ "glyph": "🌴"
+ },
+ {
+ "unicode": "1f43c",
+ "tts": "panda",
+ "glyph": "🐼"
+ },
+ {
+ "unicode": "1f99c",
+ "tts": "parrot",
+ "glyph": "🦜"
+ },
+ {
+ "unicode": "1f43e",
+ "tts": "paw prints",
+ "glyph": "🐾"
+ },
+ {
+ "unicode": "1f99a",
+ "tts": "peacock",
+ "glyph": "🦚"
+ },
+ {
+ "unicode": "1f427",
+ "tts": "penguin",
+ "glyph": "🐧"
+ },
+ {
+ "unicode": "1f416",
+ "tts": "pig",
+ "glyph": "🐖"
+ },
+ {
+ "unicode": "1f437",
+ "tts": "pig face",
+ "glyph": "🐷"
+ },
+ {
+ "unicode": "1f43d",
+ "tts": "pig nose",
+ "glyph": "🐽"
+ },
+ {
+ "unicode": "1f43b-200d-2744-fe0f",
+ "tts": "polar bear",
+ "glyph": "🐻❄️"
+ },
+ {
+ "unicode": "1f429",
+ "tts": "poodle",
+ "glyph": "🐩"
+ },
+ {
+ "unicode": "1fab4",
+ "tts": "potted plant",
+ "glyph": "🪴"
+ },
+ {
+ "unicode": "1f407",
+ "tts": "rabbit",
+ "glyph": "🐇"
+ },
+ {
+ "unicode": "1f430",
+ "tts": "rabbit face",
+ "glyph": "🐰"
+ },
+ {
+ "unicode": "1f99d",
+ "tts": "raccoon",
+ "glyph": "🦝"
+ },
+ {
+ "unicode": "1f40f",
+ "tts": "ram",
+ "glyph": "🐏"
+ },
+ {
+ "unicode": "1f400",
+ "tts": "rat",
+ "glyph": "🐀"
+ },
+ {
+ "unicode": "1f98f",
+ "tts": "rhinoceros",
+ "glyph": "🦏"
+ },
+ {
+ "unicode": "1f413",
+ "tts": "rooster",
+ "glyph": "🐓"
+ },
+ {
+ "unicode": "1f339",
+ "tts": "rose",
+ "glyph": "🌹"
+ },
+ {
+ "unicode": "1f3f5-fe0f",
+ "tts": "rosette",
+ "glyph": "🏵️"
+ },
+ {
+ "unicode": "1f995",
+ "tts": "sauropod",
+ "glyph": "🦕"
+ },
+ {
+ "unicode": "1f982",
+ "tts": "scorpion",
+ "glyph": "🦂"
+ },
+ {
+ "unicode": "1f9ad",
+ "tts": "seal",
+ "glyph": "🦭"
+ },
+ {
+ "unicode": "1f331",
+ "tts": "seedling",
+ "glyph": "🌱"
+ },
+ {
+ "unicode": "1f415-200d-1f9ba",
+ "tts": "service dog",
+ "glyph": "🐕🦺"
+ },
+ {
+ "unicode": "2618-fe0f",
+ "tts": "shamrock",
+ "glyph": "☘️"
+ },
+ {
+ "unicode": "1f988",
+ "tts": "shark",
+ "glyph": "🦈"
+ },
+ {
+ "unicode": "1f33e",
+ "tts": "sheaf of rice",
+ "glyph": "🌾"
+ },
+ {
+ "unicode": "1f9a8",
+ "tts": "skunk",
+ "glyph": "🦨"
+ },
+ {
+ "unicode": "1f9a5",
+ "tts": "sloth",
+ "glyph": "🦥"
+ },
+ {
+ "unicode": "1f40c",
+ "tts": "snail",
+ "glyph": "🐌"
+ },
+ {
+ "unicode": "1f40d",
+ "tts": "snake",
+ "glyph": "🐍"
+ },
+ {
+ "unicode": "1f577-fe0f",
+ "tts": "spider",
+ "glyph": "🕷️"
+ },
+ {
+ "unicode": "1f578-fe0f",
+ "tts": "spider web",
+ "glyph": "🕸️"
+ },
+ {
+ "unicode": "1f41a",
+ "tts": "spiral shell",
+ "glyph": "🐚"
+ },
+ {
+ "unicode": "1f433",
+ "tts": "spouting whale",
+ "glyph": "🐳"
+ },
+ {
+ "unicode": "1f33b",
+ "tts": "sunflower",
+ "glyph": "🌻"
+ },
+ {
+ "unicode": "1f9a2",
+ "tts": "swan",
+ "glyph": "🦢"
+ },
+ {
+ "unicode": "1f996",
+ "tts": "T-Rex",
+ "glyph": "🦖"
+ },
+ {
+ "unicode": "1f405",
+ "tts": "tiger",
+ "glyph": "🐅"
+ },
+ {
+ "unicode": "1f42f",
+ "tts": "tiger face",
+ "glyph": "🐯"
+ },
+ {
+ "unicode": "1f420",
+ "tts": "tropical fish",
+ "glyph": "🐠"
+ },
+ {
+ "unicode": "1f337",
+ "tts": "tulip",
+ "glyph": "🌷"
+ },
+ {
+ "unicode": "1f983",
+ "tts": "turkey",
+ "glyph": "🦃"
+ },
+ {
+ "unicode": "1f422",
+ "tts": "turtle",
+ "glyph": "🐢"
+ },
+ {
+ "unicode": "1f42b",
+ "tts": "two-hump camel",
+ "glyph": "🐫"
+ },
+ {
+ "unicode": "1f984",
+ "tts": "unicorn",
+ "glyph": "🦄"
+ },
+ {
+ "unicode": "1f403",
+ "tts": "water buffalo",
+ "glyph": "🐃"
+ },
+ {
+ "unicode": "1f40b",
+ "tts": "whale",
+ "glyph": "🐋"
+ },
+ {
+ "unicode": "1f4ae",
+ "tts": "white flower",
+ "glyph": "💮"
+ },
+ {
+ "unicode": "1f940",
+ "tts": "wilted flower",
+ "glyph": "🥀"
+ },
+ {
+ "unicode": "1f43a",
+ "tts": "wolf",
+ "glyph": "🐺"
+ },
+ {
+ "unicode": "1fab1",
+ "tts": "worm",
+ "glyph": "🪱"
+ },
+ {
+ "unicode": "1f993",
+ "tts": "zebra",
+ "glyph": "🦓"
+ }
+ ]
+ },
+ {
+ "name": "物品",
+ "emoji": [{
+ "unicode": "1f9ee",
+ "tts": "abacus",
+ "glyph": "🧮"
+ },
+ {
+ "unicode": "1fa97",
+ "tts": "accordion",
+ "glyph": "🪗"
+ },
+ {
+ "unicode": "1fa79",
+ "tts": "adhesive bandage",
+ "glyph": "🩹"
+ },
+ {
+ "unicode": "2697-fe0f",
+ "tts": "alembic",
+ "glyph": "⚗️"
+ },
+ {
+ "unicode": "1fa93",
+ "tts": "axe",
+ "glyph": "🪓"
+ },
+ {
+ "unicode": "1f392",
+ "tts": "backpack",
+ "glyph": "🎒"
+ },
+ {
+ "unicode": "2696-fe0f",
+ "tts": "balance scale",
+ "glyph": "⚖️"
+ },
+ {
+ "unicode": "1fa70",
+ "tts": "ballet shoes",
+ "glyph": "🩰"
+ },
+ {
+ "unicode": "1f5f3-fe0f",
+ "tts": "ballot box with ballot",
+ "glyph": "🗳️"
+ },
+ {
+ "unicode": "1fa95",
+ "tts": "banjo",
+ "glyph": "🪕"
+ },
+ {
+ "unicode": "1f4ca",
+ "tts": "bar chart",
+ "glyph": "📊"
+ },
+ {
+ "unicode": "1f9fa",
+ "tts": "basket",
+ "glyph": "🧺"
+ },
+ {
+ "unicode": "1f6c1",
+ "tts": "bathtub",
+ "glyph": "🛁"
+ },
+ {
+ "unicode": "1f50b",
+ "tts": "battery",
+ "glyph": "🔋"
+ },
+ {
+ "unicode": "1f6cf-fe0f",
+ "tts": "bed",
+ "glyph": "🛏️"
+ },
+ {
+ "unicode": "1f514",
+ "tts": "bell",
+ "glyph": "🔔"
+ },
+ {
+ "unicode": "1f515",
+ "tts": "bell with slash",
+ "glyph": "🔕"
+ },
+ {
+ "unicode": "1f459",
+ "tts": "bikini",
+ "glyph": "👙"
+ },
+ {
+ "unicode": "1f9e2",
+ "tts": "billed cap",
+ "glyph": "🧢"
+ },
+ {
+ "unicode": "2712-fe0f",
+ "tts": "black nib",
+ "glyph": "✒️"
+ },
+ {
+ "unicode": "1f4d8",
+ "tts": "blue book",
+ "glyph": "📘"
+ },
+ {
+ "unicode": "1f516",
+ "tts": "bookmark",
+ "glyph": "🔖"
+ },
+ {
+ "unicode": "1f4d1",
+ "tts": "bookmark tabs",
+ "glyph": "📑"
+ },
+ {
+ "unicode": "1f4da",
+ "tts": "books",
+ "glyph": "📚"
+ },
+ {
+ "unicode": "1fa83",
+ "tts": "boomerang",
+ "glyph": "🪃"
+ },
+ {
+ "unicode": "1f3f9",
+ "tts": "bow and arrow",
+ "glyph": "🏹"
+ },
+ {
+ "unicode": "1f4bc",
+ "tts": "briefcase",
+ "glyph": "💼"
+ },
+ {
+ "unicode": "1fa72",
+ "tts": "briefs",
+ "glyph": "🩲"
+ },
+ {
+ "unicode": "1f9f9",
+ "tts": "broom",
+ "glyph": "🧹"
+ },
+ {
+ "unicode": "1fae7",
+ "tts": "bubbles",
+ "glyph": "🫧"
+ },
+ {
+ "unicode": "1faa3",
+ "tts": "bucket",
+ "glyph": "🪣"
+ },
+ {
+ "unicode": "1f4c5",
+ "tts": "calendar",
+ "glyph": "📅"
+ },
+ {
+ "unicode": "1f4f7",
+ "tts": "camera",
+ "glyph": "📷"
+ },
+ {
+ "unicode": "1f4f8",
+ "tts": "camera with flash",
+ "glyph": "📸"
+ },
+ {
+ "unicode": "1f56f-fe0f",
+ "tts": "candle",
+ "glyph": "🕯️"
+ },
+ {
+ "unicode": "1f5c3-fe0f",
+ "tts": "card file box",
+ "glyph": "🗃️"
+ },
+ {
+ "unicode": "1f4c7",
+ "tts": "card index",
+ "glyph": "📇"
+ },
+ {
+ "unicode": "1f5c2-fe0f",
+ "tts": "card index dividers",
+ "glyph": "🗂️"
+ },
+ {
+ "unicode": "1fa9a",
+ "tts": "carpentry saw",
+ "glyph": "🪚"
+ },
+ {
+ "unicode": "26d3-fe0f",
+ "tts": "chains",
+ "glyph": "⛓️"
+ },
+ {
+ "unicode": "1fa91",
+ "tts": "chair",
+ "glyph": "🪑"
+ },
+ {
+ "unicode": "1f4c9",
+ "tts": "chart decreasing",
+ "glyph": "📉"
+ },
+ {
+ "unicode": "1f4c8",
+ "tts": "chart increasing",
+ "glyph": "📈"
+ },
+ {
+ "unicode": "1f4b9",
+ "tts": "chart increasing with yen",
+ "glyph": "💹"
+ },
+ {
+ "unicode": "1f6ac",
+ "tts": "cigarette",
+ "glyph": "🚬"
+ },
+ {
+ "unicode": "1f5dc-fe0f",
+ "tts": "clamp",
+ "glyph": "🗜️"
+ },
+ {
+ "unicode": "1f3ac",
+ "tts": "clapper board",
+ "glyph": "🎬"
+ },
+ {
+ "unicode": "1f4cb",
+ "tts": "clipboard",
+ "glyph": "📋"
+ },
+ {
+ "unicode": "1f4d5",
+ "tts": "closed book",
+ "glyph": "📕"
+ },
+ {
+ "unicode": "1f4ea",
+ "tts": "closed mailbox with lowered flag",
+ "glyph": "📪"
+ },
+ {
+ "unicode": "1f4eb",
+ "tts": "closed mailbox with raised flag",
+ "glyph": "📫"
+ },
+ {
+ "unicode": "1f45d",
+ "tts": "clutch bag",
+ "glyph": "👝"
+ },
+ {
+ "unicode": "1f9e5",
+ "tts": "coat",
+ "glyph": "🧥"
+ },
+ {
+ "unicode": "26b0-fe0f",
+ "tts": "coffin",
+ "glyph": "⚰️"
+ },
+ {
+ "unicode": "1fa99",
+ "tts": "coin",
+ "glyph": "🪙"
+ },
+ {
+ "unicode": "1f4bd",
+ "tts": "computer disk",
+ "glyph": "💽"
+ },
+ {
+ "unicode": "1f5b1-fe0f",
+ "tts": "computer mouse",
+ "glyph": "🖱️"
+ },
+ {
+ "unicode": "1f39b-fe0f",
+ "tts": "control knobs",
+ "glyph": "🎛️"
+ },
+ {
+ "unicode": "1f6cb-fe0f",
+ "tts": "couch and lamp",
+ "glyph": "🛋️"
+ },
+ {
+ "unicode": "1f58d-fe0f",
+ "tts": "crayon",
+ "glyph": "🖍️"
+ },
+ {
+ "unicode": "1f4b3",
+ "tts": "credit card",
+ "glyph": "💳"
+ },
+ {
+ "unicode": "2694-fe0f",
+ "tts": "crossed swords",
+ "glyph": "⚔️"
+ },
+ {
+ "unicode": "1f451",
+ "tts": "crown",
+ "glyph": "👑"
+ },
+ {
+ "unicode": "1fa7c",
+ "tts": "crutch",
+ "glyph": "🩼"
+ },
+ {
+ "unicode": "1f5e1-fe0f",
+ "tts": "dagger",
+ "glyph": "🗡️"
+ },
+ {
+ "unicode": "1f5a5-fe0f",
+ "tts": "desktop computer",
+ "glyph": "🖥️"
+ },
+ {
+ "unicode": "1fa94",
+ "tts": "diya lamp",
+ "glyph": "🪔"
+ },
+ {
+ "unicode": "1f9ec",
+ "tts": "dna",
+ "glyph": "🧬"
+ },
+ {
+ "unicode": "1f4b5",
+ "tts": "dollar banknote",
+ "glyph": "💵"
+ },
+ {
+ "unicode": "1f6aa",
+ "tts": "door",
+ "glyph": "🚪"
+ },
+ {
+ "unicode": "1f457",
+ "tts": "dress",
+ "glyph": "👗"
+ },
+ {
+ "unicode": "1fa78",
+ "tts": "drop of blood",
+ "glyph": "🩸"
+ },
+ {
+ "unicode": "1f941",
+ "tts": "drum",
+ "glyph": "🥁"
+ },
+ {
+ "unicode": "1f4c0",
+ "tts": "dvd",
+ "glyph": "📀"
+ },
+ {
+ "unicode": "1f4e7",
+ "tts": "e-mail",
+ "glyph": "📧"
+ },
+ {
+ "unicode": "1f50c",
+ "tts": "electric plug",
+ "glyph": "🔌"
+ },
+ {
+ "unicode": "1f6d7",
+ "tts": "elevator",
+ "glyph": "🛗"
+ },
+ {
+ "unicode": "2709-fe0f",
+ "tts": "envelope",
+ "glyph": "✉️"
+ },
+ {
+ "unicode": "1f4e9",
+ "tts": "envelope with arrow",
+ "glyph": "📩"
+ },
+ {
+ "unicode": "1f4b6",
+ "tts": "euro banknote",
+ "glyph": "💶"
+ },
+ {
+ "unicode": "1f4e0",
+ "tts": "fax machine",
+ "glyph": "📠"
+ },
+ {
+ "unicode": "1f5c4-fe0f",
+ "tts": "file cabinet",
+ "glyph": "🗄️"
+ },
+ {
+ "unicode": "1f4c1",
+ "tts": "file folder",
+ "glyph": "📁"
+ },
+ {
+ "unicode": "1f39e-fe0f",
+ "tts": "film frames",
+ "glyph": "🎞️"
+ },
+ {
+ "unicode": "1f4fd-fe0f",
+ "tts": "film projector",
+ "glyph": "📽️"
+ },
+ {
+ "unicode": "1f9ef",
+ "tts": "fire extinguisher",
+ "glyph": "🧯"
+ },
+ {
+ "unicode": "1f526",
+ "tts": "flashlight",
+ "glyph": "🔦"
+ },
+ {
+ "unicode": "1f97f",
+ "tts": "flat shoe",
+ "glyph": "🥿"
+ },
+ {
+ "unicode": "1f4be",
+ "tts": "floppy disk",
+ "glyph": "💾"
+ },
+ {
+ "unicode": "1f58b-fe0f",
+ "tts": "fountain pen",
+ "glyph": "🖋️"
+ },
+ {
+ "unicode": "26b1-fe0f",
+ "tts": "funeral urn",
+ "glyph": "⚱️"
+ },
+ {
+ "unicode": "2699-fe0f",
+ "tts": "gear",
+ "glyph": "⚙️"
+ },
+ {
+ "unicode": "1f48e",
+ "tts": "gem stone",
+ "glyph": "💎"
+ },
+ {
+ "unicode": "1f453",
+ "tts": "glasses",
+ "glyph": "👓"
+ },
+ {
+ "unicode": "1f9e4",
+ "tts": "gloves",
+ "glyph": "🧤"
+ },
+ {
+ "unicode": "1f97d",
+ "tts": "goggles",
+ "glyph": "🥽"
+ },
+ {
+ "unicode": "1f393",
+ "tts": "graduation cap",
+ "glyph": "🎓"
+ },
+ {
+ "unicode": "1f4d7",
+ "tts": "green book",
+ "glyph": "📗"
+ },
+ {
+ "unicode": "1f3b8",
+ "tts": "guitar",
+ "glyph": "🎸"
+ },
+ {
+ "unicode": "1f528",
+ "tts": "hammer",
+ "glyph": "🔨"
+ },
+ {
+ "unicode": "2692-fe0f",
+ "tts": "hammer and pick",
+ "glyph": "⚒️"
+ },
+ {
+ "unicode": "1f6e0-fe0f",
+ "tts": "hammer and wrench",
+ "glyph": "🛠️"
+ },
+ {
+ "unicode": "1f45c",
+ "tts": "handbag",
+ "glyph": "👜"
+ },
+ {
+ "unicode": "1f3a7",
+ "tts": "headphone",
+ "glyph": "🎧"
+ },
+ {
+ "unicode": "1faa6",
+ "tts": "headstone",
+ "glyph": "🪦"
+ },
+ {
+ "unicode": "1f460",
+ "tts": "high-heeled shoe",
+ "glyph": "👠"
+ },
+ {
+ "unicode": "1f97e",
+ "tts": "hiking boot",
+ "glyph": "🥾"
+ },
+ {
+ "unicode": "1fa9d",
+ "tts": "hook",
+ "glyph": "🪝"
+ },
+ {
+ "unicode": "1faaa",
+ "tts": "identification card",
+ "glyph": "🪪"
+ },
+ {
+ "unicode": "1f4e5",
+ "tts": "inbox tray",
+ "glyph": "📥"
+ },
+ {
+ "unicode": "1f4e8",
+ "tts": "incoming envelope",
+ "glyph": "📨"
+ },
+ {
+ "unicode": "1f456",
+ "tts": "jeans",
+ "glyph": "👖"
+ },
+ {
+ "unicode": "1f511",
+ "tts": "key",
+ "glyph": "🔑"
+ },
+ {
+ "unicode": "2328-fe0f",
+ "tts": "keyboard",
+ "glyph": "⌨️"
+ },
+ {
+ "unicode": "1f458",
+ "tts": "kimono",
+ "glyph": "👘"
+ },
+ {
+ "unicode": "1f97c",
+ "tts": "lab coat",
+ "glyph": "🥼"
+ },
+ {
+ "unicode": "1f3f7-fe0f",
+ "tts": "label",
+ "glyph": "🏷️"
+ },
+ {
+ "unicode": "1fa9c",
+ "tts": "ladder",
+ "glyph": "🪜"
+ },
+ {
+ "unicode": "1f4bb",
+ "tts": "laptop",
+ "glyph": "💻"
+ },
+ {
+ "unicode": "1f4d2",
+ "tts": "ledger",
+ "glyph": "📒"
+ },
+ {
+ "unicode": "1f39a-fe0f",
+ "tts": "level slider",
+ "glyph": "🎚️"
+ },
+ {
+ "unicode": "1f4a1",
+ "tts": "light bulb",
+ "glyph": "💡"
+ },
+ {
+ "unicode": "1f517",
+ "tts": "link",
+ "glyph": "🔗"
+ },
+ {
+ "unicode": "1f587-fe0f",
+ "tts": "linked paperclips",
+ "glyph": "🖇️"
+ },
+ {
+ "unicode": "1f484",
+ "tts": "lipstick",
+ "glyph": "💄"
+ },
+ {
+ "unicode": "1f512",
+ "tts": "locked",
+ "glyph": "🔒"
+ },
+ {
+ "unicode": "1f510",
+ "tts": "locked with key",
+ "glyph": "🔐"
+ },
+ {
+ "unicode": "1f50f",
+ "tts": "locked with pen",
+ "glyph": "🔏"
+ },
+ {
+ "unicode": "1fa98",
+ "tts": "long drum",
+ "glyph": "🪘"
+ },
+ {
+ "unicode": "1f9f4",
+ "tts": "lotion bottle",
+ "glyph": "🧴"
+ },
+ {
+ "unicode": "1f4e2",
+ "tts": "loudspeaker",
+ "glyph": "📢"
+ },
+ {
+ "unicode": "1faab",
+ "tts": "low battery",
+ "glyph": "🪫"
+ },
+ {
+ "unicode": "1f9f2",
+ "tts": "magnet",
+ "glyph": "🧲"
+ },
+ {
+ "unicode": "1f50d",
+ "tts": "magnifying glass tilted left",
+ "glyph": "🔍"
+ },
+ {
+ "unicode": "1f50e",
+ "tts": "magnifying glass tilted right",
+ "glyph": "🔎"
+ },
+ {
+ "unicode": "1f45e",
+ "tts": "man’s shoe",
+ "glyph": "👞"
+ },
+ {
+ "unicode": "1f4e3",
+ "tts": "megaphone",
+ "glyph": "📣"
+ },
+ {
+ "unicode": "1f4dd",
+ "tts": "memo",
+ "glyph": "📝"
+ },
+ {
+ "unicode": "1f3a4",
+ "tts": "microphone",
+ "glyph": "🎤"
+ },
+ {
+ "unicode": "1f52c",
+ "tts": "microscope",
+ "glyph": "🔬"
+ },
+ {
+ "unicode": "1fa96",
+ "tts": "military helmet",
+ "glyph": "🪖"
+ },
+ {
+ "unicode": "1fa9e",
+ "tts": "mirror",
+ "glyph": "🪞"
+ },
+ {
+ "unicode": "1f5ff",
+ "tts": "moai",
+ "glyph": "🗿"
+ },
+ {
+ "unicode": "1f4f1",
+ "tts": "mobile phone",
+ "glyph": "📱"
+ },
+ {
+ "unicode": "1f4f2",
+ "tts": "mobile phone with arrow",
+ "glyph": "📲"
+ },
+ {
+ "unicode": "1f4b0",
+ "tts": "money bag",
+ "glyph": "💰"
+ },
+ {
+ "unicode": "1f4b8",
+ "tts": "money with wings",
+ "glyph": "💸"
+ },
+ {
+ "unicode": "1faa4",
+ "tts": "mouse trap",
+ "glyph": "🪤"
+ },
+ {
+ "unicode": "1f3a5",
+ "tts": "movie camera",
+ "glyph": "🎥"
+ },
+ {
+ "unicode": "1f3b9",
+ "tts": "musical keyboard",
+ "glyph": "🎹"
+ },
+ {
+ "unicode": "1f3b5",
+ "tts": "musical note",
+ "glyph": "🎵"
+ },
+ {
+ "unicode": "1f3b6",
+ "tts": "musical notes",
+ "glyph": "🎶"
+ },
+ {
+ "unicode": "1f3bc",
+ "tts": "musical score",
+ "glyph": "🎼"
+ },
+ {
+ "unicode": "1f507",
+ "tts": "muted speaker",
+ "glyph": "🔇"
+ },
+ {
+ "unicode": "1f454",
+ "tts": "necktie",
+ "glyph": "👔"
+ },
+ {
+ "unicode": "1f4f0",
+ "tts": "newspaper",
+ "glyph": "📰"
+ },
+ {
+ "unicode": "1f4d3",
+ "tts": "notebook",
+ "glyph": "📓"
+ },
+ {
+ "unicode": "1f4d4",
+ "tts": "notebook with decorative cover",
+ "glyph": "📔"
+ },
+ {
+ "unicode": "1f529",
+ "tts": "nut and bolt",
+ "glyph": "🔩"
+ },
+ {
+ "unicode": "1f5dd-fe0f",
+ "tts": "old key",
+ "glyph": "🗝️"
+ },
+ {
+ "unicode": "1fa71",
+ "tts": "one-piece swimsuit",
+ "glyph": "🩱"
+ },
+ {
+ "unicode": "1f4d6",
+ "tts": "open book",
+ "glyph": "📖"
+ },
+ {
+ "unicode": "1f4c2",
+ "tts": "open file folder",
+ "glyph": "📂"
+ },
+ {
+ "unicode": "1f4ed",
+ "tts": "open mailbox with lowered flag",
+ "glyph": "📭"
+ },
+ {
+ "unicode": "1f4ec",
+ "tts": "open mailbox with raised flag",
+ "glyph": "📬"
+ },
+ {
+ "unicode": "1f4bf",
+ "tts": "optical disk",
+ "glyph": "💿"
+ },
+ {
+ "unicode": "1f4d9",
+ "tts": "orange book",
+ "glyph": "📙"
+ },
+ {
+ "unicode": "1f4e4",
+ "tts": "outbox tray",
+ "glyph": "📤"
+ },
+ {
+ "unicode": "1f4e6",
+ "tts": "package",
+ "glyph": "📦"
+ },
+ {
+ "unicode": "1f4c4",
+ "tts": "page facing up",
+ "glyph": "📄"
+ },
+ {
+ "unicode": "1f4c3",
+ "tts": "page with curl",
+ "glyph": "📃"
+ },
+ {
+ "unicode": "1f4df",
+ "tts": "pager",
+ "glyph": "📟"
+ },
+ {
+ "unicode": "1f58c-fe0f",
+ "tts": "paintbrush",
+ "glyph": "🖌️"
+ },
+ {
+ "unicode": "1f58a-fe0f",
+ "tts": "pen",
+ "glyph": "🖊️"
+ },
+ {
+ "unicode": "270f-fe0f",
+ "tts": "pencil",
+ "glyph": "✏️"
+ },
+ {
+ "unicode": "1f9eb",
+ "tts": "petri dish",
+ "glyph": "🧫"
+ },
+ {
+ "unicode": "26cf-fe0f",
+ "tts": "pick",
+ "glyph": "⛏️"
+ },
+ {
+ "unicode": "1f48a",
+ "tts": "pill",
+ "glyph": "💊"
+ },
+ {
+ "unicode": "1faa7",
+ "tts": "placard",
+ "glyph": "🪧"
+ },
+ {
+ "unicode": "1faa0",
+ "tts": "plunger",
+ "glyph": "🪠"
+ },
+ {
+ "unicode": "1f4ef",
+ "tts": "postal horn",
+ "glyph": "📯"
+ },
+ {
+ "unicode": "1f4ee",
+ "tts": "postbox",
+ "glyph": "📮"
+ },
+ {
+ "unicode": "1f4b7",
+ "tts": "pound banknote",
+ "glyph": "💷"
+ },
+ {
+ "unicode": "1f4ff",
+ "tts": "prayer beads",
+ "glyph": "📿"
+ },
+ {
+ "unicode": "1f5a8-fe0f",
+ "tts": "printer",
+ "glyph": "🖨️"
+ },
+ {
+ "unicode": "1f45b",
+ "tts": "purse",
+ "glyph": "👛"
+ },
+ {
+ "unicode": "1f4cc",
+ "tts": "pushpin",
+ "glyph": "📌"
+ },
+ {
+ "unicode": "1f4fb",
+ "tts": "radio",
+ "glyph": "📻"
+ },
+ {
+ "unicode": "1fa92",
+ "tts": "razor",
+ "glyph": "🪒"
+ },
+ {
+ "unicode": "1f9fe",
+ "tts": "receipt",
+ "glyph": "🧾"
+ },
+ {
+ "unicode": "1f3ee",
+ "tts": "red paper lantern",
+ "glyph": "🏮"
+ },
+ {
+ "unicode": "26d1-fe0f",
+ "tts": "rescue worker’s helmet",
+ "glyph": "⛑️"
+ },
+ {
+ "unicode": "1f48d",
+ "tts": "ring",
+ "glyph": "💍"
+ },
+ {
+ "unicode": "1f9fb",
+ "tts": "roll of paper",
+ "glyph": "🧻"
+ },
+ {
+ "unicode": "1f5de-fe0f",
+ "tts": "rolled-up newspaper",
+ "glyph": "🗞️"
+ },
+ {
+ "unicode": "1f4cd",
+ "tts": "round pushpin",
+ "glyph": "📍"
+ },
+ {
+ "unicode": "1f45f",
+ "tts": "running shoe",
+ "glyph": "👟"
+ },
+ {
+ "unicode": "1f9f7",
+ "tts": "safety pin",
+ "glyph": "🧷"
+ },
+ {
+ "unicode": "1f9ba",
+ "tts": "safety vest",
+ "glyph": "🦺"
+ },
+ {
+ "unicode": "1f97b",
+ "tts": "sari",
+ "glyph": "🥻"
+ },
+ {
+ "unicode": "1f4e1",
+ "tts": "satellite antenna",
+ "glyph": "📡"
+ },
+ {
+ "unicode": "1f3b7",
+ "tts": "saxophone",
+ "glyph": "🎷"
+ },
+ {
+ "unicode": "1f9e3",
+ "tts": "scarf",
+ "glyph": "🧣"
+ },
+ {
+ "unicode": "2702-fe0f",
+ "tts": "scissors",
+ "glyph": "✂️"
+ },
+ {
+ "unicode": "1fa9b",
+ "tts": "screwdriver",
+ "glyph": "🪛"
+ },
+ {
+ "unicode": "1f4dc",
+ "tts": "scroll",
+ "glyph": "📜"
+ },
+ {
+ "unicode": "1f6e1-fe0f",
+ "tts": "shield",
+ "glyph": "🛡️"
+ },
+ {
+ "unicode": "1f6cd-fe0f",
+ "tts": "shopping bags",
+ "glyph": "🛍️"
+ },
+ {
+ "unicode": "1f6d2",
+ "tts": "shopping cart",
+ "glyph": "🛒"
+ },
+ {
+ "unicode": "1fa73",
+ "tts": "shorts",
+ "glyph": "🩳"
+ },
+ {
+ "unicode": "1f6bf",
+ "tts": "shower",
+ "glyph": "🚿"
+ },
+ {
+ "unicode": "1f9fc",
+ "tts": "soap",
+ "glyph": "🧼"
+ },
+ {
+ "unicode": "1f9e6",
+ "tts": "socks",
+ "glyph": "🧦"
+ },
+ {
+ "unicode": "1f50a",
+ "tts": "speaker high volume",
+ "glyph": "🔊"
+ },
+ {
+ "unicode": "1f508",
+ "tts": "speaker low volume",
+ "glyph": "🔈"
+ },
+ {
+ "unicode": "1f509",
+ "tts": "speaker medium volume",
+ "glyph": "🔉"
+ },
+ {
+ "unicode": "1f5d3-fe0f",
+ "tts": "spiral calendar",
+ "glyph": "🗓️"
+ },
+ {
+ "unicode": "1f5d2-fe0f",
+ "tts": "spiral notepad",
+ "glyph": "🗒️"
+ },
+ {
+ "unicode": "1f9fd",
+ "tts": "sponge",
+ "glyph": "🧽"
+ },
+ {
+ "unicode": "1fa7a",
+ "tts": "stethoscope",
+ "glyph": "🩺"
+ },
+ {
+ "unicode": "1f4cf",
+ "tts": "straight ruler",
+ "glyph": "📏"
+ },
+ {
+ "unicode": "1f399-fe0f",
+ "tts": "studio microphone",
+ "glyph": "🎙️"
+ },
+ {
+ "unicode": "1f576-fe0f",
+ "tts": "sunglasses",
+ "glyph": "🕶️"
+ },
+ {
+ "unicode": "1f489",
+ "tts": "syringe",
+ "glyph": "💉"
+ },
+ {
+ "unicode": "1f455",
+ "tts": "t-shirt",
+ "glyph": "👕"
+ },
+ {
+ "unicode": "1f4c6",
+ "tts": "tear-off calendar",
+ "glyph": "📆"
+ },
+ {
+ "unicode": "260e-fe0f",
+ "tts": "telephone",
+ "glyph": "☎️"
+ },
+ {
+ "unicode": "1f4de",
+ "tts": "telephone receiver",
+ "glyph": "📞"
+ },
+ {
+ "unicode": "1f52d",
+ "tts": "telescope",
+ "glyph": "🔭"
+ },
+ {
+ "unicode": "1f4fa",
+ "tts": "television",
+ "glyph": "📺"
+ },
+ {
+ "unicode": "1f9ea",
+ "tts": "test tube",
+ "glyph": "🧪"
+ },
+ {
+ "unicode": "1fa74",
+ "tts": "thong sandal",
+ "glyph": "🩴"
+ },
+ {
+ "unicode": "1f6bd",
+ "tts": "toilet",
+ "glyph": "🚽"
+ },
+ {
+ "unicode": "1f9f0",
+ "tts": "toolbox",
+ "glyph": "🧰"
+ },
+ {
+ "unicode": "1faa5",
+ "tts": "toothbrush",
+ "glyph": "🪥"
+ },
+ {
+ "unicode": "1f3a9",
+ "tts": "top hat",
+ "glyph": "🎩"
+ },
+ {
+ "unicode": "1f5b2-fe0f",
+ "tts": "trackball",
+ "glyph": "🖲️"
+ },
+ {
+ "unicode": "1f4d0",
+ "tts": "triangular ruler",
+ "glyph": "📐"
+ },
+ {
+ "unicode": "1f3ba",
+ "tts": "trumpet",
+ "glyph": "🎺"
+ },
+ {
+ "unicode": "1f513",
+ "tts": "unlocked",
+ "glyph": "🔓"
+ },
+ {
+ "unicode": "1f4f9",
+ "tts": "video camera",
+ "glyph": "📹"
+ },
+ {
+ "unicode": "1f4fc",
+ "tts": "videocassette",
+ "glyph": "📼"
+ },
+ {
+ "unicode": "1f3bb",
+ "tts": "violin",
+ "glyph": "🎻"
+ },
+ {
+ "unicode": "1f5d1-fe0f",
+ "tts": "wastebasket",
+ "glyph": "🗑️"
+ },
+ {
+ "unicode": "1f52b",
+ "tts": "water pistol",
+ "glyph": "🔫"
+ },
+ {
+ "unicode": "1f9af",
+ "tts": "white cane",
+ "glyph": "🦯"
+ },
+ {
+ "unicode": "1fa9f",
+ "tts": "window",
+ "glyph": "🪟"
+ },
+ {
+ "unicode": "1f462",
+ "tts": "woman’s boot",
+ "glyph": "👢"
+ },
+ {
+ "unicode": "1f45a",
+ "tts": "woman’s clothes",
+ "glyph": "👚"
+ },
+ {
+ "unicode": "1f452",
+ "tts": "woman’s hat",
+ "glyph": "👒"
+ },
+ {
+ "unicode": "1f461",
+ "tts": "woman’s sandal",
+ "glyph": "👡"
+ },
+ {
+ "unicode": "1f527",
+ "tts": "wrench",
+ "glyph": "🔧"
+ },
+ {
+ "unicode": "1fa7b",
+ "tts": "x-ray",
+ "glyph": "🩻"
+ },
+ {
+ "unicode": "1f4b4",
+ "tts": "yen banknote",
+ "glyph": "💴"
+ }
+ ]
+ },
+ {
+ "name": "旅行",
+ "emoji": [{
+ "unicode": "1f6a1",
+ "tts": "aerial tramway",
+ "glyph": "🚡"
+ },
+ {
+ "unicode": "2708-fe0f",
+ "tts": "airplane",
+ "glyph": "✈️"
+ },
+ {
+ "unicode": "1f6ec",
+ "tts": "airplane arrival",
+ "glyph": "🛬"
+ },
+ {
+ "unicode": "1f6eb",
+ "tts": "airplane departure",
+ "glyph": "🛫"
+ },
+ {
+ "unicode": "23f0",
+ "tts": "alarm clock",
+ "glyph": "⏰"
+ },
+ {
+ "unicode": "1f691",
+ "tts": "ambulance",
+ "glyph": "🚑"
+ },
+ {
+ "unicode": "2693",
+ "tts": "anchor",
+ "glyph": "⚓"
+ },
+ {
+ "unicode": "1f69b",
+ "tts": "articulated lorry",
+ "glyph": "🚛"
+ },
+ {
+ "unicode": "1f6fa",
+ "tts": "auto rickshaw",
+ "glyph": "🛺"
+ },
+ {
+ "unicode": "1f697",
+ "tts": "automobile",
+ "glyph": "🚗"
+ },
+ {
+ "unicode": "1f3e6",
+ "tts": "bank",
+ "glyph": "🏦"
+ },
+ {
+ "unicode": "1f488",
+ "tts": "barber pole",
+ "glyph": "💈"
+ },
+ {
+ "unicode": "1f3d6-fe0f",
+ "tts": "beach with umbrella",
+ "glyph": "🏖️"
+ },
+ {
+ "unicode": "1f6ce-fe0f",
+ "tts": "bellhop bell",
+ "glyph": "🛎️"
+ },
+ {
+ "unicode": "1f6b2",
+ "tts": "bicycle",
+ "glyph": "🚲"
+ },
+ {
+ "unicode": "1f9f1",
+ "tts": "brick",
+ "glyph": "🧱"
+ },
+ {
+ "unicode": "1f309",
+ "tts": "bridge at night",
+ "glyph": "🌉"
+ },
+ {
+ "unicode": "1f3d7-fe0f",
+ "tts": "building construction",
+ "glyph": "🏗️"
+ },
+ {
+ "unicode": "1f685",
+ "tts": "bullet train",
+ "glyph": "🚅"
+ },
+ {
+ "unicode": "1f68c",
+ "tts": "bus",
+ "glyph": "🚌"
+ },
+ {
+ "unicode": "1f68f",
+ "tts": "bus stop",
+ "glyph": "🚏"
+ },
+ {
+ "unicode": "1f3d5-fe0f",
+ "tts": "camping",
+ "glyph": "🏕️"
+ },
+ {
+ "unicode": "1f6f6",
+ "tts": "canoe",
+ "glyph": "🛶"
+ },
+ {
+ "unicode": "1f3a0",
+ "tts": "carousel horse",
+ "glyph": "🎠"
+ },
+ {
+ "unicode": "1f3f0",
+ "tts": "castle",
+ "glyph": "🏰"
+ },
+ {
+ "unicode": "26ea",
+ "tts": "church",
+ "glyph": "⛪"
+ },
+ {
+ "unicode": "1f3aa",
+ "tts": "circus tent",
+ "glyph": "🎪"
+ },
+ {
+ "unicode": "1f3d9-fe0f",
+ "tts": "cityscape",
+ "glyph": "🏙️"
+ },
+ {
+ "unicode": "1f306",
+ "tts": "cityscape at dusk",
+ "glyph": "🌆"
+ },
+ {
+ "unicode": "1f3db-fe0f",
+ "tts": "classical building",
+ "glyph": "🏛️"
+ },
+ {
+ "unicode": "1f302",
+ "tts": "closed umbrella",
+ "glyph": "🌂"
+ },
+ {
+ "unicode": "2601-fe0f",
+ "tts": "cloud",
+ "glyph": "☁️"
+ },
+ {
+ "unicode": "1f329-fe0f",
+ "tts": "cloud with lightning",
+ "glyph": "🌩️"
+ },
+ {
+ "unicode": "26c8-fe0f",
+ "tts": "cloud with lightning and rain",
+ "glyph": "⛈️"
+ },
+ {
+ "unicode": "1f327-fe0f",
+ "tts": "cloud with rain",
+ "glyph": "🌧️"
+ },
+ {
+ "unicode": "1f328-fe0f",
+ "tts": "cloud with snow",
+ "glyph": "🌨️"
+ },
+ {
+ "unicode": "2604-fe0f",
+ "tts": "comet",
+ "glyph": "☄️"
+ },
+ {
+ "unicode": "1f9ed",
+ "tts": "compass",
+ "glyph": "🧭"
+ },
+ {
+ "unicode": "1f6a7",
+ "tts": "construction",
+ "glyph": "🚧"
+ },
+ {
+ "unicode": "1f3ea",
+ "tts": "convenience store",
+ "glyph": "🏪"
+ },
+ {
+ "unicode": "1f319",
+ "tts": "crescent moon",
+ "glyph": "🌙"
+ },
+ {
+ "unicode": "1f300",
+ "tts": "cyclone",
+ "glyph": "🌀"
+ },
+ {
+ "unicode": "1f69a",
+ "tts": "delivery truck",
+ "glyph": "🚚"
+ },
+ {
+ "unicode": "1f3ec",
+ "tts": "department store",
+ "glyph": "🏬"
+ },
+ {
+ "unicode": "1f3da-fe0f",
+ "tts": "derelict house",
+ "glyph": "🏚️"
+ },
+ {
+ "unicode": "1f3dc-fe0f",
+ "tts": "desert",
+ "glyph": "🏜️"
+ },
+ {
+ "unicode": "1f3dd-fe0f",
+ "tts": "desert island",
+ "glyph": "🏝️"
+ },
+ {
+ "unicode": "1f4a7",
+ "tts": "droplet",
+ "glyph": "💧"
+ },
+ {
+ "unicode": "1f557",
+ "tts": "eight o’clock",
+ "glyph": "🕗"
+ },
+ {
+ "unicode": "1f563",
+ "tts": "eight-thirty",
+ "glyph": "🕣"
+ },
+ {
+ "unicode": "1f55a",
+ "tts": "eleven o’clock",
+ "glyph": "🕚"
+ },
+ {
+ "unicode": "1f566",
+ "tts": "eleven-thirty",
+ "glyph": "🕦"
+ },
+ {
+ "unicode": "1f3ed",
+ "tts": "factory",
+ "glyph": "🏭"
+ },
+ {
+ "unicode": "1f3a1",
+ "tts": "ferris wheel",
+ "glyph": "🎡"
+ },
+ {
+ "unicode": "26f4-fe0f",
+ "tts": "ferry",
+ "glyph": "⛴️"
+ },
+ {
+ "unicode": "1f525",
+ "tts": "fire",
+ "glyph": "🔥"
+ },
+ {
+ "unicode": "1f692",
+ "tts": "fire engine",
+ "glyph": "🚒"
+ },
+ {
+ "unicode": "1f313",
+ "tts": "first quarter moon",
+ "glyph": "🌓"
+ },
+ {
+ "unicode": "1f31b",
+ "tts": "first quarter moon face",
+ "glyph": "🌛"
+ },
+ {
+ "unicode": "1f554",
+ "tts": "five o’clock",
+ "glyph": "🕔"
+ },
+ {
+ "unicode": "1f560",
+ "tts": "five-thirty",
+ "glyph": "🕠"
+ },
+ {
+ "unicode": "1f6f8",
+ "tts": "flying saucer",
+ "glyph": "🛸"
+ },
+ {
+ "unicode": "1f32b-fe0f",
+ "tts": "fog",
+ "glyph": "🌫️"
+ },
+ {
+ "unicode": "1f301",
+ "tts": "foggy",
+ "glyph": "🌁"
+ },
+ {
+ "unicode": "26f2",
+ "tts": "fountain",
+ "glyph": "⛲"
+ },
+ {
+ "unicode": "1f553",
+ "tts": "four o’clock",
+ "glyph": "🕓"
+ },
+ {
+ "unicode": "1f55f",
+ "tts": "four-thirty",
+ "glyph": "🕟"
+ },
+ {
+ "unicode": "26fd",
+ "tts": "fuel pump",
+ "glyph": "⛽"
+ },
+ {
+ "unicode": "1f315",
+ "tts": "full moon",
+ "glyph": "🌕"
+ },
+ {
+ "unicode": "1f31d",
+ "tts": "full moon face",
+ "glyph": "🌝"
+ },
+ {
+ "unicode": "1f30e",
+ "tts": "globe showing Americas",
+ "glyph": "🌎"
+ },
+ {
+ "unicode": "1f30f",
+ "tts": "globe showing Asia-Australia",
+ "glyph": "🌏"
+ },
+ {
+ "unicode": "1f30d",
+ "tts": "globe showing Europe-Africa",
+ "glyph": "🌍"
+ },
+ {
+ "unicode": "1f310",
+ "tts": "globe with meridians",
+ "glyph": "🌐"
+ },
+ {
+ "unicode": "1f31f",
+ "tts": "glowing star",
+ "glyph": "🌟"
+ },
+ {
+ "unicode": "1f681",
+ "tts": "helicopter",
+ "glyph": "🚁"
+ },
+ {
+ "unicode": "26a1",
+ "tts": "high voltage",
+ "glyph": "⚡"
+ },
+ {
+ "unicode": "1f684",
+ "tts": "high-speed train",
+ "glyph": "🚄"
+ },
+ {
+ "unicode": "1f6d5",
+ "tts": "hindu temple",
+ "glyph": "🛕"
+ },
+ {
+ "unicode": "1f6a5",
+ "tts": "horizontal traffic light",
+ "glyph": "🚥"
+ },
+ {
+ "unicode": "1f3e5",
+ "tts": "hospital",
+ "glyph": "🏥"
+ },
+ {
+ "unicode": "2668-fe0f",
+ "tts": "hot springs",
+ "glyph": "♨️"
+ },
+ {
+ "unicode": "1f3e8",
+ "tts": "hotel",
+ "glyph": "🏨"
+ },
+ {
+ "unicode": "231b",
+ "tts": "hourglass done",
+ "glyph": "⌛"
+ },
+ {
+ "unicode": "23f3",
+ "tts": "hourglass not done",
+ "glyph": "⏳"
+ },
+ {
+ "unicode": "1f3e0",
+ "tts": "house",
+ "glyph": "🏠"
+ },
+ {
+ "unicode": "1f3e1",
+ "tts": "house with garden",
+ "glyph": "🏡"
+ },
+ {
+ "unicode": "1f3d8-fe0f",
+ "tts": "houses",
+ "glyph": "🏘️"
+ },
+ {
+ "unicode": "1f6d6",
+ "tts": "hut",
+ "glyph": "🛖"
+ },
+ {
+ "unicode": "1f3ef",
+ "tts": "Japanese castle",
+ "glyph": "🏯"
+ },
+ {
+ "unicode": "1f3e3",
+ "tts": "Japanese post office",
+ "glyph": "🏣"
+ },
+ {
+ "unicode": "1f54b",
+ "tts": "kaaba",
+ "glyph": "🕋"
+ },
+ {
+ "unicode": "1f6f4",
+ "tts": "kick scooter",
+ "glyph": "🛴"
+ },
+ {
+ "unicode": "1f317",
+ "tts": "last quarter moon",
+ "glyph": "🌗"
+ },
+ {
+ "unicode": "1f31c",
+ "tts": "last quarter moon face",
+ "glyph": "🌜"
+ },
+ {
+ "unicode": "1f688",
+ "tts": "light rail",
+ "glyph": "🚈"
+ },
+ {
+ "unicode": "1f682",
+ "tts": "locomotive",
+ "glyph": "🚂"
+ },
+ {
+ "unicode": "1f3e9",
+ "tts": "love hotel",
+ "glyph": "🏩"
+ },
+ {
+ "unicode": "1f9f3",
+ "tts": "luggage",
+ "glyph": "🧳"
+ },
+ {
+ "unicode": "1f570-fe0f",
+ "tts": "mantelpiece clock",
+ "glyph": "🕰️"
+ },
+ {
+ "unicode": "1f9bd",
+ "tts": "manual wheelchair",
+ "glyph": "🦽"
+ },
+ {
+ "unicode": "1f5fe",
+ "tts": "map of Japan",
+ "glyph": "🗾"
+ },
+ {
+ "unicode": "1f687",
+ "tts": "metro",
+ "glyph": "🚇"
+ },
+ {
+ "unicode": "1f30c",
+ "tts": "milky way",
+ "glyph": "🌌"
+ },
+ {
+ "unicode": "1f690",
+ "tts": "minibus",
+ "glyph": "🚐"
+ },
+ {
+ "unicode": "1f69d",
+ "tts": "monorail",
+ "glyph": "🚝"
+ },
+ {
+ "unicode": "1f54c",
+ "tts": "mosque",
+ "glyph": "🕌"
+ },
+ {
+ "unicode": "1f6e5-fe0f",
+ "tts": "motor boat",
+ "glyph": "🛥️"
+ },
+ {
+ "unicode": "1f6f5",
+ "tts": "motor scooter",
+ "glyph": "🛵"
+ },
+ {
+ "unicode": "1f3cd-fe0f",
+ "tts": "motorcycle",
+ "glyph": "🏍️"
+ },
+ {
+ "unicode": "1f9bc",
+ "tts": "motorized wheelchair",
+ "glyph": "🦼"
+ },
+ {
+ "unicode": "1f6e3-fe0f",
+ "tts": "motorway",
+ "glyph": "🛣️"
+ },
+ {
+ "unicode": "1f5fb",
+ "tts": "mount fuji",
+ "glyph": "🗻"
+ },
+ {
+ "unicode": "26f0-fe0f",
+ "tts": "mountain",
+ "glyph": "⛰️"
+ },
+ {
+ "unicode": "1f6a0",
+ "tts": "mountain cableway",
+ "glyph": "🚠"
+ },
+ {
+ "unicode": "1f69e",
+ "tts": "mountain railway",
+ "glyph": "🚞"
+ },
+ {
+ "unicode": "1f3de-fe0f",
+ "tts": "national park",
+ "glyph": "🏞️"
+ },
+ {
+ "unicode": "1f311",
+ "tts": "new moon",
+ "glyph": "🌑"
+ },
+ {
+ "unicode": "1f31a",
+ "tts": "new moon face",
+ "glyph": "🌚"
+ },
+ {
+ "unicode": "1f303",
+ "tts": "night with stars",
+ "glyph": "🌃"
+ },
+ {
+ "unicode": "1f558",
+ "tts": "nine o’clock",
+ "glyph": "🕘"
+ },
+ {
+ "unicode": "1f564",
+ "tts": "nine-thirty",
+ "glyph": "🕤"
+ },
+ {
+ "unicode": "1f3e2",
+ "tts": "office building",
+ "glyph": "🏢"
+ },
+ {
+ "unicode": "1f6e2-fe0f",
+ "tts": "oil drum",
+ "glyph": "🛢️"
+ },
+ {
+ "unicode": "1f698",
+ "tts": "oncoming automobile",
+ "glyph": "🚘"
+ },
+ {
+ "unicode": "1f68d",
+ "tts": "oncoming bus",
+ "glyph": "🚍"
+ },
+ {
+ "unicode": "1f694",
+ "tts": "oncoming police car",
+ "glyph": "🚔"
+ },
+ {
+ "unicode": "1f696",
+ "tts": "oncoming taxi",
+ "glyph": "🚖"
+ },
+ {
+ "unicode": "1f550",
+ "tts": "one o’clock",
+ "glyph": "🕐"
+ },
+ {
+ "unicode": "1f55c",
+ "tts": "one-thirty",
+ "glyph": "🕜"
+ },
+ {
+ "unicode": "1fa82",
+ "tts": "parachute",
+ "glyph": "🪂"
+ },
+ {
+ "unicode": "1f6f3-fe0f",
+ "tts": "passenger ship",
+ "glyph": "🛳️"
+ },
+ {
+ "unicode": "1f6fb",
+ "tts": "pickup truck",
+ "glyph": "🛻"
+ },
+ {
+ "unicode": "1f6dd",
+ "tts": "playground slide",
+ "glyph": "🛝"
+ },
+ {
+ "unicode": "1f693",
+ "tts": "police car",
+ "glyph": "🚓"
+ },
+ {
+ "unicode": "1f6a8",
+ "tts": "police car light",
+ "glyph": "🚨"
+ },
+ {
+ "unicode": "1f3e4",
+ "tts": "post office",
+ "glyph": "🏤"
+ },
+ {
+ "unicode": "1f3ce-fe0f",
+ "tts": "racing car",
+ "glyph": "🏎️"
+ },
+ {
+ "unicode": "1f683",
+ "tts": "railway car",
+ "glyph": "🚃"
+ },
+ {
+ "unicode": "1f6e4-fe0f",
+ "tts": "railway track",
+ "glyph": "🛤️"
+ },
+ {
+ "unicode": "1f308",
+ "tts": "rainbow",
+ "glyph": "🌈"
+ },
+ {
+ "unicode": "1f6df",
+ "tts": "ring buoy",
+ "glyph": "🛟"
+ },
+ {
+ "unicode": "1fa90",
+ "tts": "ringed planet",
+ "glyph": "🪐"
+ },
+ {
+ "unicode": "1faa8",
+ "tts": "rock",
+ "glyph": "🪨"
+ },
+ {
+ "unicode": "1f680",
+ "tts": "rocket",
+ "glyph": "🚀"
+ },
+ {
+ "unicode": "1f3a2",
+ "tts": "roller coaster",
+ "glyph": "🎢"
+ },
+ {
+ "unicode": "1f6fc",
+ "tts": "roller skate",
+ "glyph": "🛼"
+ },
+ {
+ "unicode": "26f5",
+ "tts": "sailboat",
+ "glyph": "⛵"
+ },
+ {
+ "unicode": "1f6f0-fe0f",
+ "tts": "satellite",
+ "glyph": "🛰️"
+ },
+ {
+ "unicode": "1f3eb",
+ "tts": "school",
+ "glyph": "🏫"
+ },
+ {
+ "unicode": "1f4ba",
+ "tts": "seat",
+ "glyph": "💺"
+ },
+ {
+ "unicode": "1f556",
+ "tts": "seven o’clock",
+ "glyph": "🕖"
+ },
+ {
+ "unicode": "1f562",
+ "tts": "seven-thirty",
+ "glyph": "🕢"
+ },
+ {
+ "unicode": "26e9-fe0f",
+ "tts": "shinto shrine",
+ "glyph": "⛩️"
+ },
+ {
+ "unicode": "1f6a2",
+ "tts": "ship",
+ "glyph": "🚢"
+ },
+ {
+ "unicode": "1f320",
+ "tts": "shooting star",
+ "glyph": "🌠"
+ },
+ {
+ "unicode": "1f555",
+ "tts": "six o’clock",
+ "glyph": "🕕"
+ },
+ {
+ "unicode": "1f561",
+ "tts": "six-thirty",
+ "glyph": "🕡"
+ },
+ {
+ "unicode": "1f6f9",
+ "tts": "skateboard",
+ "glyph": "🛹"
+ },
+ {
+ "unicode": "1f6e9-fe0f",
+ "tts": "small airplane",
+ "glyph": "🛩️"
+ },
+ {
+ "unicode": "1f3d4-fe0f",
+ "tts": "snow-capped mountain",
+ "glyph": "🏔️"
+ },
+ {
+ "unicode": "2744-fe0f",
+ "tts": "snowflake",
+ "glyph": "❄️"
+ },
+ {
+ "unicode": "2603-fe0f",
+ "tts": "snowman",
+ "glyph": "☃️"
+ },
+ {
+ "unicode": "26c4",
+ "tts": "snowman without snow",
+ "glyph": "⛄"
+ },
+ {
+ "unicode": "1f6a4",
+ "tts": "speedboat",
+ "glyph": "🚤"
+ },
+ {
+ "unicode": "1f699",
+ "tts": "sport utility vehicle",
+ "glyph": "🚙"
+ },
+ {
+ "unicode": "1f3df-fe0f",
+ "tts": "stadium",
+ "glyph": "🏟️"
+ },
+ {
+ "unicode": "2b50",
+ "tts": "star",
+ "glyph": "⭐"
+ },
+ {
+ "unicode": "1f689",
+ "tts": "station",
+ "glyph": "🚉"
+ },
+ {
+ "unicode": "1f5fd",
+ "tts": "Statue of Liberty",
+ "glyph": "🗽"
+ },
+ {
+ "unicode": "1f6d1",
+ "tts": "stop sign",
+ "glyph": "🛑"
+ },
+ {
+ "unicode": "23f1-fe0f",
+ "tts": "stopwatch",
+ "glyph": "⏱️"
+ },
+ {
+ "unicode": "2600-fe0f",
+ "tts": "sun",
+ "glyph": "☀️"
+ },
+ {
+ "unicode": "26c5",
+ "tts": "sun behind cloud",
+ "glyph": "⛅"
+ },
+ {
+ "unicode": "1f325-fe0f",
+ "tts": "sun behind large cloud",
+ "glyph": "🌥️"
+ },
+ {
+ "unicode": "1f326-fe0f",
+ "tts": "sun behind rain cloud",
+ "glyph": "🌦️"
+ },
+ {
+ "unicode": "1f324-fe0f",
+ "tts": "sun behind small cloud",
+ "glyph": "🌤️"
+ },
+ {
+ "unicode": "1f31e",
+ "tts": "sun with face",
+ "glyph": "🌞"
+ },
+ {
+ "unicode": "1f305",
+ "tts": "sunrise",
+ "glyph": "🌅"
+ },
+ {
+ "unicode": "1f304",
+ "tts": "sunrise over mountains",
+ "glyph": "🌄"
+ },
+ {
+ "unicode": "1f307",
+ "tts": "sunset",
+ "glyph": "🌇"
+ },
+ {
+ "unicode": "1f69f",
+ "tts": "suspension railway",
+ "glyph": "🚟"
+ },
+ {
+ "unicode": "1f54d",
+ "tts": "synagogue",
+ "glyph": "🕍"
+ },
+ {
+ "unicode": "1f695",
+ "tts": "taxi",
+ "glyph": "🚕"
+ },
+ {
+ "unicode": "1f559",
+ "tts": "ten o’clock",
+ "glyph": "🕙"
+ },
+ {
+ "unicode": "1f565",
+ "tts": "ten-thirty",
+ "glyph": "🕥"
+ },
+ {
+ "unicode": "26fa",
+ "tts": "tent",
+ "glyph": "⛺"
+ },
+ {
+ "unicode": "1f321-fe0f",
+ "tts": "thermometer",
+ "glyph": "🌡️"
+ },
+ {
+ "unicode": "1f552",
+ "tts": "three o’clock",
+ "glyph": "🕒"
+ },
+ {
+ "unicode": "1f55e",
+ "tts": "three-thirty",
+ "glyph": "🕞"
+ },
+ {
+ "unicode": "23f2-fe0f",
+ "tts": "timer clock",
+ "glyph": "⏲️"
+ },
+ {
+ "unicode": "1f5fc",
+ "tts": "Tokyo tower",
+ "glyph": "🗼"
+ },
+ {
+ "unicode": "1f32a-fe0f",
+ "tts": "tornado",
+ "glyph": "🌪️"
+ },
+ {
+ "unicode": "1f69c",
+ "tts": "tractor",
+ "glyph": "🚜"
+ },
+ {
+ "unicode": "1f686",
+ "tts": "train",
+ "glyph": "🚆"
+ },
+ {
+ "unicode": "1f68a",
+ "tts": "tram",
+ "glyph": "🚊"
+ },
+ {
+ "unicode": "1f68b",
+ "tts": "tram car",
+ "glyph": "🚋"
+ },
+ {
+ "unicode": "1f68e",
+ "tts": "trolleybus",
+ "glyph": "🚎"
+ },
+ {
+ "unicode": "1f55b",
+ "tts": "twelve o’clock",
+ "glyph": "🕛"
+ },
+ {
+ "unicode": "1f567",
+ "tts": "twelve-thirty",
+ "glyph": "🕧"
+ },
+ {
+ "unicode": "1f551",
+ "tts": "two o’clock",
+ "glyph": "🕑"
+ },
+ {
+ "unicode": "1f55d",
+ "tts": "two-thirty",
+ "glyph": "🕝"
+ },
+ {
+ "unicode": "2602-fe0f",
+ "tts": "umbrella",
+ "glyph": "☂️"
+ },
+ {
+ "unicode": "26f1-fe0f",
+ "tts": "umbrella on ground",
+ "glyph": "⛱️"
+ },
+ {
+ "unicode": "2614",
+ "tts": "umbrella with rain drops",
+ "glyph": "☔"
+ },
+ {
+ "unicode": "1f6a6",
+ "tts": "vertical traffic light",
+ "glyph": "🚦"
+ },
+ {
+ "unicode": "1f30b",
+ "tts": "volcano",
+ "glyph": "🌋"
+ },
+ {
+ "unicode": "1f318",
+ "tts": "waning crescent moon",
+ "glyph": "🌘"
+ },
+ {
+ "unicode": "1f316",
+ "tts": "waning gibbous moon",
+ "glyph": "🌖"
+ },
+ {
+ "unicode": "231a",
+ "tts": "watch",
+ "glyph": "⌚"
+ },
+ {
+ "unicode": "1f30a",
+ "tts": "water wave",
+ "glyph": "🌊"
+ },
+ {
+ "unicode": "1f312",
+ "tts": "waxing crescent moon",
+ "glyph": "🌒"
+ },
+ {
+ "unicode": "1f314",
+ "tts": "waxing gibbous moon",
+ "glyph": "🌔"
+ },
+ {
+ "unicode": "1f492",
+ "tts": "wedding",
+ "glyph": "💒"
+ },
+ {
+ "unicode": "1f6de",
+ "tts": "wheel",
+ "glyph": "🛞"
+ },
+ {
+ "unicode": "1f32c-fe0f",
+ "tts": "wind face",
+ "glyph": "🌬️"
+ },
+ {
+ "unicode": "1fab5",
+ "tts": "wood",
+ "glyph": "🪵"
+ },
+ {
+ "unicode": "1f5fa-fe0f",
+ "tts": "world map",
+ "glyph": "🗺️"
+ }
+ ]
+ },
+ {
+ "name": "活动",
+ "emoji": [{
+ "unicode": "1f947",
+ "tts": "1st place medal",
+ "glyph": "🥇"
+ },
+ {
+ "unicode": "1f948",
+ "tts": "2nd place medal",
+ "glyph": "🥈"
+ },
+ {
+ "unicode": "1f949",
+ "tts": "3rd place medal",
+ "glyph": "🥉"
+ },
+ {
+ "unicode": "1f39f-fe0f",
+ "tts": "admission tickets",
+ "glyph": "🎟️"
+ },
+ {
+ "unicode": "1f3c8",
+ "tts": "american football",
+ "glyph": "🏈"
+ },
+ {
+ "unicode": "1f3a8",
+ "tts": "artist palette",
+ "glyph": "🎨"
+ },
+ {
+ "unicode": "1f3f8",
+ "tts": "badminton",
+ "glyph": "🏸"
+ },
+ {
+ "unicode": "1f388",
+ "tts": "balloon",
+ "glyph": "🎈"
+ },
+ {
+ "unicode": "26be",
+ "tts": "baseball",
+ "glyph": "⚾"
+ },
+ {
+ "unicode": "1f3c0",
+ "tts": "basketball",
+ "glyph": "🏀"
+ },
+ {
+ "unicode": "1f3b3",
+ "tts": "bowling",
+ "glyph": "🎳"
+ },
+ {
+ "unicode": "1f94a",
+ "tts": "boxing glove",
+ "glyph": "🥊"
+ },
+ {
+ "unicode": "1f3af",
+ "tts": "bullseye",
+ "glyph": "🎯"
+ },
+ {
+ "unicode": "1f38f",
+ "tts": "carp streamer",
+ "glyph": "🎏"
+ },
+ {
+ "unicode": "265f-fe0f",
+ "tts": "chess pawn",
+ "glyph": "♟️"
+ },
+ {
+ "unicode": "1f384",
+ "tts": "Christmas tree",
+ "glyph": "🎄"
+ },
+ {
+ "unicode": "2663-fe0f",
+ "tts": "club suit",
+ "glyph": "♣️"
+ },
+ {
+ "unicode": "1f38a",
+ "tts": "confetti ball",
+ "glyph": "🎊"
+ },
+ {
+ "unicode": "1f3cf",
+ "tts": "cricket game",
+ "glyph": "🏏"
+ },
+ {
+ "unicode": "1f52e",
+ "tts": "crystal ball",
+ "glyph": "🔮"
+ },
+ {
+ "unicode": "1f94c",
+ "tts": "curling stone",
+ "glyph": "🥌"
+ },
+ {
+ "unicode": "2666-fe0f",
+ "tts": "diamond suit",
+ "glyph": "♦️"
+ },
+ {
+ "unicode": "1f93f",
+ "tts": "diving mask",
+ "glyph": "🤿"
+ },
+ {
+ "unicode": "1f3d1",
+ "tts": "field hockey",
+ "glyph": "🏑"
+ },
+ {
+ "unicode": "1f9e8",
+ "tts": "firecracker",
+ "glyph": "🧨"
+ },
+ {
+ "unicode": "1f386",
+ "tts": "fireworks",
+ "glyph": "🎆"
+ },
+ {
+ "unicode": "1f3a3",
+ "tts": "fishing pole",
+ "glyph": "🎣"
+ },
+ {
+ "unicode": "26f3",
+ "tts": "flag in hole",
+ "glyph": "⛳"
+ },
+ {
+ "unicode": "1f3b4",
+ "tts": "flower playing cards",
+ "glyph": "🎴"
+ },
+ {
+ "unicode": "1f94f",
+ "tts": "flying disc",
+ "glyph": "🥏"
+ },
+ {
+ "unicode": "1f5bc-fe0f",
+ "tts": "framed picture",
+ "glyph": "🖼️"
+ },
+ {
+ "unicode": "1f3b2",
+ "tts": "game die",
+ "glyph": "🎲"
+ },
+ {
+ "unicode": "1f945",
+ "tts": "goal net",
+ "glyph": "🥅"
+ },
+ {
+ "unicode": "1faac",
+ "tts": "hamsa",
+ "glyph": "🪬"
+ },
+ {
+ "unicode": "2665-fe0f",
+ "tts": "heart suit",
+ "glyph": "♥️"
+ },
+ {
+ "unicode": "1f3d2",
+ "tts": "ice hockey",
+ "glyph": "🏒"
+ },
+ {
+ "unicode": "26f8-fe0f",
+ "tts": "ice skate",
+ "glyph": "⛸️"
+ },
+ {
+ "unicode": "1f383",
+ "tts": "jack-o-lantern",
+ "glyph": "🎃"
+ },
+ {
+ "unicode": "1f38e",
+ "tts": "Japanese dolls",
+ "glyph": "🎎"
+ },
+ {
+ "unicode": "1f0cf",
+ "tts": "joker",
+ "glyph": "🃏"
+ },
+ {
+ "unicode": "1f579-fe0f",
+ "tts": "joystick",
+ "glyph": "🕹️"
+ },
+ {
+ "unicode": "1fa81",
+ "tts": "kite",
+ "glyph": "🪁"
+ },
+ {
+ "unicode": "1faa2",
+ "tts": "knot",
+ "glyph": "🪢"
+ },
+ {
+ "unicode": "1f94d",
+ "tts": "lacrosse",
+ "glyph": "🥍"
+ },
+ {
+ "unicode": "1fa84",
+ "tts": "magic wand",
+ "glyph": "🪄"
+ },
+ {
+ "unicode": "1f004",
+ "tts": "mahjong red dragon",
+ "glyph": "🀄"
+ },
+ {
+ "unicode": "1f94b",
+ "tts": "martial arts uniform",
+ "glyph": "🥋"
+ },
+ {
+ "unicode": "1f396-fe0f",
+ "tts": "military medal",
+ "glyph": "🎖️"
+ },
+ {
+ "unicode": "1faa9",
+ "tts": "mirror ball",
+ "glyph": "🪩"
+ },
+ {
+ "unicode": "1f391",
+ "tts": "moon viewing ceremony",
+ "glyph": "🎑"
+ },
+ {
+ "unicode": "1f9ff",
+ "tts": "nazar amulet",
+ "glyph": "🧿"
+ },
+ {
+ "unicode": "1fa86",
+ "tts": "nesting dolls",
+ "glyph": "🪆"
+ },
+ {
+ "unicode": "1f389",
+ "tts": "party popper",
+ "glyph": "🎉"
+ },
+ {
+ "unicode": "1f3ad",
+ "tts": "performing arts",
+ "glyph": "🎭"
+ },
+ {
+ "unicode": "1f38d",
+ "tts": "pine decoration",
+ "glyph": "🎍"
+ },
+ {
+ "unicode": "1f3d3",
+ "tts": "ping pong",
+ "glyph": "🏓"
+ },
+ {
+ "unicode": "1fa85",
+ "tts": "piñata",
+ "glyph": "🪅"
+ },
+ {
+ "unicode": "1f3b1",
+ "tts": "pool 8 ball",
+ "glyph": "🎱"
+ },
+ {
+ "unicode": "1f9e9",
+ "tts": "puzzle piece",
+ "glyph": "🧩"
+ },
+ {
+ "unicode": "1f9e7",
+ "tts": "red envelope",
+ "glyph": "🧧"
+ },
+ {
+ "unicode": "1f397-fe0f",
+ "tts": "reminder ribbon",
+ "glyph": "🎗️"
+ },
+ {
+ "unicode": "1f380",
+ "tts": "ribbon",
+ "glyph": "🎀"
+ },
+ {
+ "unicode": "1f3c9",
+ "tts": "rugby football",
+ "glyph": "🏉"
+ },
+ {
+ "unicode": "1f3bd",
+ "tts": "running shirt",
+ "glyph": "🎽"
+ },
+ {
+ "unicode": "1faa1",
+ "tts": "sewing needle",
+ "glyph": "🪡"
+ },
+ {
+ "unicode": "1f3bf",
+ "tts": "skis",
+ "glyph": "🎿"
+ },
+ {
+ "unicode": "1f6f7",
+ "tts": "sled",
+ "glyph": "🛷"
+ },
+ {
+ "unicode": "1f3b0",
+ "tts": "slot machine",
+ "glyph": "🎰"
+ },
+ {
+ "unicode": "26bd",
+ "tts": "soccer ball",
+ "glyph": "⚽"
+ },
+ {
+ "unicode": "1f94e",
+ "tts": "softball",
+ "glyph": "🥎"
+ },
+ {
+ "unicode": "2660-fe0f",
+ "tts": "spade suit",
+ "glyph": "♠️"
+ },
+ {
+ "unicode": "1f387",
+ "tts": "sparkler",
+ "glyph": "🎇"
+ },
+ {
+ "unicode": "2728",
+ "tts": "sparkles",
+ "glyph": "✨"
+ },
+ {
+ "unicode": "1f3c5",
+ "tts": "sports medal",
+ "glyph": "🏅"
+ },
+ {
+ "unicode": "1f38b",
+ "tts": "tanabata tree",
+ "glyph": "🎋"
+ },
+ {
+ "unicode": "1f9f8",
+ "tts": "teddy bear",
+ "glyph": "🧸"
+ },
+ {
+ "unicode": "1f3be",
+ "tts": "tennis",
+ "glyph": "🎾"
+ },
+ {
+ "unicode": "1f9f5",
+ "tts": "thread",
+ "glyph": "🧵"
+ },
+ {
+ "unicode": "1f3ab",
+ "tts": "ticket",
+ "glyph": "🎫"
+ },
+ {
+ "unicode": "1f3c6",
+ "tts": "trophy",
+ "glyph": "🏆"
+ },
+ {
+ "unicode": "1f3d0",
+ "tts": "volleyball",
+ "glyph": "🏐"
+ },
+ {
+ "unicode": "1f390",
+ "tts": "wind chime",
+ "glyph": "🎐"
+ },
+ {
+ "unicode": "1f381",
+ "tts": "wrapped gift",
+ "glyph": "🎁"
+ },
+ {
+ "unicode": "1f9f6",
+ "tts": "yarn",
+ "glyph": "🧶"
+ },
+ {
+ "unicode": "1fa80",
+ "tts": "yo-yo",
+ "glyph": "🪀"
+ }
+ ]
+ },
+ {
+ "name": "符号",
+ "emoji": [{
+ "unicode": "1f170-fe0f",
+ "tts": "A button (blood type)",
+ "glyph": "🅰️"
+ },
+ {
+ "unicode": "1f18e",
+ "tts": "AB button (blood type)",
+ "glyph": "🆎"
+ },
+ {
+ "unicode": "1f4f6",
+ "tts": "antenna bars",
+ "glyph": "📶"
+ },
+ {
+ "unicode": "2652",
+ "tts": "Aquarius",
+ "glyph": "♒"
+ },
+ {
+ "unicode": "2648",
+ "tts": "Aries",
+ "glyph": "♈"
+ },
+ {
+ "unicode": "1f3e7",
+ "tts": "ATM sign",
+ "glyph": "🏧"
+ },
+ {
+ "unicode": "269b-fe0f",
+ "tts": "atom symbol",
+ "glyph": "⚛️"
+ },
+ {
+ "unicode": "1f171-fe0f",
+ "tts": "B button (blood type)",
+ "glyph": "🅱️"
+ },
+ {
+ "unicode": "1f6bc",
+ "tts": "baby symbol",
+ "glyph": "🚼"
+ },
+ {
+ "unicode": "1f519",
+ "tts": "BACK arrow",
+ "glyph": "🔙"
+ },
+ {
+ "unicode": "1f6c4",
+ "tts": "baggage claim",
+ "glyph": "🛄"
+ },
+ {
+ "unicode": "2623-fe0f",
+ "tts": "biohazard",
+ "glyph": "☣️"
+ },
+ {
+ "unicode": "26ab",
+ "tts": "black circle",
+ "glyph": "⚫"
+ },
+ {
+ "unicode": "2b1b",
+ "tts": "black large square",
+ "glyph": "⬛"
+ },
+ {
+ "unicode": "25fc-fe0f",
+ "tts": "black medium square",
+ "glyph": "◼️"
+ },
+ {
+ "unicode": "25fe",
+ "tts": "black medium-small square",
+ "glyph": "◾"
+ },
+ {
+ "unicode": "25aa-fe0f",
+ "tts": "black small square",
+ "glyph": "▪️"
+ },
+ {
+ "unicode": "1f532",
+ "tts": "black square button",
+ "glyph": "🔲"
+ },
+ {
+ "unicode": "1f535",
+ "tts": "blue circle",
+ "glyph": "🔵"
+ },
+ {
+ "unicode": "1f7e6",
+ "tts": "blue square",
+ "glyph": "🟦"
+ },
+ {
+ "unicode": "1f506",
+ "tts": "bright button",
+ "glyph": "🔆"
+ },
+ {
+ "unicode": "1f7e4",
+ "tts": "brown circle",
+ "glyph": "🟤"
+ },
+ {
+ "unicode": "1f7eb",
+ "tts": "brown square",
+ "glyph": "🟫"
+ },
+ {
+ "unicode": "264b",
+ "tts": "Cancer",
+ "glyph": "♋"
+ },
+ {
+ "unicode": "2651",
+ "tts": "Capricorn",
+ "glyph": "♑"
+ },
+ {
+ "unicode": "2611-fe0f",
+ "tts": "check box with check",
+ "glyph": "☑️"
+ },
+ {
+ "unicode": "2714-fe0f",
+ "tts": "check mark",
+ "glyph": "✔️"
+ },
+ {
+ "unicode": "2705",
+ "tts": "check mark button",
+ "glyph": "✅"
+ },
+ {
+ "unicode": "1f6b8",
+ "tts": "children crossing",
+ "glyph": "🚸"
+ },
+ {
+ "unicode": "1f3a6",
+ "tts": "cinema",
+ "glyph": "🎦"
+ },
+ {
+ "unicode": "24c2-fe0f",
+ "tts": "circled M",
+ "glyph": "Ⓜ️"
+ },
+ {
+ "unicode": "1f191",
+ "tts": "CL button",
+ "glyph": "🆑"
+ },
+ {
+ "unicode": "1f503",
+ "tts": "clockwise vertical arrows",
+ "glyph": "🔃"
+ },
+ {
+ "unicode": "1f192",
+ "tts": "COOL button",
+ "glyph": "🆒"
+ },
+ {
+ "unicode": "00a9-fe0f",
+ "tts": "copyright",
+ "glyph": "©️"
+ },
+ {
+ "unicode": "1f504",
+ "tts": "counterclockwise arrows button",
+ "glyph": "🔄"
+ },
+ {
+ "unicode": "274c",
+ "tts": "cross mark",
+ "glyph": "❌"
+ },
+ {
+ "unicode": "274e",
+ "tts": "cross mark button",
+ "glyph": "❎"
+ },
+ {
+ "unicode": "27b0",
+ "tts": "curly loop",
+ "glyph": "➰"
+ },
+ {
+ "unicode": "1f4b1",
+ "tts": "currency exchange",
+ "glyph": "💱"
+ },
+ {
+ "unicode": "1f6c3",
+ "tts": "customs",
+ "glyph": "🛃"
+ },
+ {
+ "unicode": "1f4a0",
+ "tts": "diamond with a dot",
+ "glyph": "💠"
+ },
+ {
+ "unicode": "1f505",
+ "tts": "dim button",
+ "glyph": "🔅"
+ },
+ {
+ "unicode": "2797",
+ "tts": "divide",
+ "glyph": "➗"
+ },
+ {
+ "unicode": "1f52f",
+ "tts": "dotted six-pointed star",
+ "glyph": "🔯"
+ },
+ {
+ "unicode": "27bf",
+ "tts": "double curly loop",
+ "glyph": "➿"
+ },
+ {
+ "unicode": "203c-fe0f",
+ "tts": "double exclamation mark",
+ "glyph": "‼️"
+ },
+ {
+ "unicode": "2b07-fe0f",
+ "tts": "down arrow",
+ "glyph": "⬇️"
+ },
+ {
+ "unicode": "2199-fe0f",
+ "tts": "down-left arrow",
+ "glyph": "↙️"
+ },
+ {
+ "unicode": "2198-fe0f",
+ "tts": "down-right arrow",
+ "glyph": "↘️"
+ },
+ {
+ "unicode": "1f53d",
+ "tts": "downwards button",
+ "glyph": "🔽"
+ },
+ {
+ "unicode": "2734-fe0f",
+ "tts": "eight-pointed star",
+ "glyph": "✴️"
+ },
+ {
+ "unicode": "2733-fe0f",
+ "tts": "eight-spoked asterisk",
+ "glyph": "✳️"
+ },
+ {
+ "unicode": "23cf-fe0f",
+ "tts": "eject button",
+ "glyph": "⏏️"
+ },
+ {
+ "unicode": "1f51a",
+ "tts": "END arrow",
+ "glyph": "🔚"
+ },
+ {
+ "unicode": "2049-fe0f",
+ "tts": "exclamation question mark",
+ "glyph": "⁉️"
+ },
+ {
+ "unicode": "23ec",
+ "tts": "fast down button",
+ "glyph": "⏬"
+ },
+ {
+ "unicode": "23ea",
+ "tts": "fast reverse button",
+ "glyph": "⏪"
+ },
+ {
+ "unicode": "23eb",
+ "tts": "fast up button",
+ "glyph": "⏫"
+ },
+ {
+ "unicode": "23e9",
+ "tts": "fast-forward button",
+ "glyph": "⏩"
+ },
+ {
+ "unicode": "2640-fe0f",
+ "tts": "female sign",
+ "glyph": "♀️"
+ },
+ {
+ "unicode": "269c-fe0f",
+ "tts": "fleur-de-lis",
+ "glyph": "⚜️"
+ },
+ {
+ "unicode": "1f193",
+ "tts": "FREE button",
+ "glyph": "🆓"
+ },
+ {
+ "unicode": "264a",
+ "tts": "Gemini",
+ "glyph": "♊"
+ },
+ {
+ "unicode": "1f7e2",
+ "tts": "green circle",
+ "glyph": "🟢"
+ },
+ {
+ "unicode": "1f7e9",
+ "tts": "green square",
+ "glyph": "🟩"
+ },
+ {
+ "unicode": "1f4b2",
+ "tts": "heavy dollar sign",
+ "glyph": "💲"
+ },
+ {
+ "unicode": "1f7f0",
+ "tts": "heavy equals sign",
+ "glyph": "🟰"
+ },
+ {
+ "unicode": "2b55",
+ "tts": "hollow red circle",
+ "glyph": "⭕"
+ },
+ {
+ "unicode": "1f194",
+ "tts": "ID button",
+ "glyph": "🆔"
+ },
+ {
+ "unicode": "267e-fe0f",
+ "tts": "infinity",
+ "glyph": "♾️"
+ },
+ {
+ "unicode": "2139-fe0f",
+ "tts": "information",
+ "glyph": "ℹ️"
+ },
+ {
+ "unicode": "1f524",
+ "tts": "input latin letters",
+ "glyph": "🔤"
+ },
+ {
+ "unicode": "1f521",
+ "tts": "input latin lowercase",
+ "glyph": "🔡"
+ },
+ {
+ "unicode": "1f520",
+ "tts": "input latin uppercase",
+ "glyph": "🔠"
+ },
+ {
+ "unicode": "1f522",
+ "tts": "input numbers",
+ "glyph": "🔢"
+ },
+ {
+ "unicode": "1f523",
+ "tts": "input symbols",
+ "glyph": "🔣"
+ },
+ {
+ "unicode": "1f251",
+ "tts": "Japanese “acceptable” button",
+ "glyph": "🉑"
+ },
+ {
+ "unicode": "1f238",
+ "tts": "Japanese “application” button",
+ "glyph": "🈸"
+ },
+ {
+ "unicode": "1f250",
+ "tts": "Japanese “bargain” button",
+ "glyph": "🉐"
+ },
+ {
+ "unicode": "3297-fe0f",
+ "tts": "Japanese “congratulations” button",
+ "glyph": "㊗️"
+ },
+ {
+ "unicode": "1f239",
+ "tts": "Japanese “discount” button",
+ "glyph": "🈹"
+ },
+ {
+ "unicode": "1f21a",
+ "tts": "Japanese “free of charge” button",
+ "glyph": "🈚"
+ },
+ {
+ "unicode": "1f201",
+ "tts": "Japanese “here” button",
+ "glyph": "🈁"
+ },
+ {
+ "unicode": "1f237-fe0f",
+ "tts": "Japanese “monthly amount” button",
+ "glyph": "🈷️"
+ },
+ {
+ "unicode": "1f235",
+ "tts": "Japanese “no vacancy” button",
+ "glyph": "🈵"
+ },
+ {
+ "unicode": "1f236",
+ "tts": "Japanese “not free of charge” button",
+ "glyph": "🈶"
+ },
+ {
+ "unicode": "1f23a",
+ "tts": "Japanese “open for business” button",
+ "glyph": "🈺"
+ },
+ {
+ "unicode": "1f234",
+ "tts": "Japanese “passing grade” button",
+ "glyph": "🈴"
+ },
+ {
+ "unicode": "1f232",
+ "tts": "Japanese “prohibited” button",
+ "glyph": "🈲"
+ },
+ {
+ "unicode": "1f22f",
+ "tts": "Japanese “reserved” button",
+ "glyph": "🈯"
+ },
+ {
+ "unicode": "3299-fe0f",
+ "tts": "Japanese “secret” button",
+ "glyph": "㊙️"
+ },
+ {
+ "unicode": "1f202-fe0f",
+ "tts": "Japanese “service charge” button",
+ "glyph": "🈂️"
+ },
+ {
+ "unicode": "1f530",
+ "tts": "Japanese symbol for beginner",
+ "glyph": "🔰"
+ },
+ {
+ "unicode": "1f233",
+ "tts": "Japanese “vacancy” button",
+ "glyph": "🈳"
+ },
+ {
+ "unicode": "0030-fe0f-20e3",
+ "tts": "keycap: 0",
+ "glyph": "0️⃣"
+ },
+ {
+ "unicode": "0031-fe0f-20e3",
+ "tts": "keycap: 1",
+ "glyph": "1️⃣"
+ },
+ {
+ "unicode": "1f51f",
+ "tts": "keycap: 10",
+ "glyph": "🔟"
+ },
+ {
+ "unicode": "0032-fe0f-20e3",
+ "tts": "keycap: 2",
+ "glyph": "2️⃣"
+ },
+ {
+ "unicode": "0033-fe0f-20e3",
+ "tts": "keycap: 3",
+ "glyph": "3️⃣"
+ },
+ {
+ "unicode": "0034-fe0f-20e3",
+ "tts": "keycap: 4",
+ "glyph": "4️⃣"
+ },
+ {
+ "unicode": "0035-fe0f-20e3",
+ "tts": "keycap: 5",
+ "glyph": "5️⃣"
+ },
+ {
+ "unicode": "0036-fe0f-20e3",
+ "tts": "keycap: 6",
+ "glyph": "6️⃣"
+ },
+ {
+ "unicode": "0037-fe0f-20e3",
+ "tts": "keycap: 7",
+ "glyph": "7️⃣"
+ },
+ {
+ "unicode": "0038-fe0f-20e3",
+ "tts": "keycap: 8",
+ "glyph": "8️⃣"
+ },
+ {
+ "unicode": "0039-fe0f-20e3",
+ "tts": "keycap: 9",
+ "glyph": "9️⃣"
+ },
+ {
+ "unicode": "002a-fe0f-20e3",
+ "tts": "keycap: *",
+ "glyph": "*️⃣"
+ },
+ {
+ "unicode": "0023-fe0f-20e3",
+ "tts": "keycap: #",
+ "glyph": "#️⃣"
+ },
+ {
+ "unicode": "1f537",
+ "tts": "large blue diamond",
+ "glyph": "🔷"
+ },
+ {
+ "unicode": "1f536",
+ "tts": "large orange diamond",
+ "glyph": "🔶"
+ },
+ {
+ "unicode": "23ee-fe0f",
+ "tts": "last track button",
+ "glyph": "⏮️"
+ },
+ {
+ "unicode": "271d-fe0f",
+ "tts": "latin cross",
+ "glyph": "✝️"
+ },
+ {
+ "unicode": "2b05-fe0f",
+ "tts": "left arrow",
+ "glyph": "⬅️"
+ },
+ {
+ "unicode": "21aa-fe0f",
+ "tts": "left arrow curving right",
+ "glyph": "↪️"
+ },
+ {
+ "unicode": "1f6c5",
+ "tts": "left luggage",
+ "glyph": "🛅"
+ },
+ {
+ "unicode": "2194-fe0f",
+ "tts": "left-right arrow",
+ "glyph": "↔️"
+ },
+ {
+ "unicode": "264c",
+ "tts": "Leo",
+ "glyph": "♌"
+ },
+ {
+ "unicode": "264e",
+ "tts": "Libra",
+ "glyph": "♎"
+ },
+ {
+ "unicode": "1f6ae",
+ "tts": "litter in bin sign",
+ "glyph": "🚮"
+ },
+ {
+ "unicode": "2642-fe0f",
+ "tts": "male sign",
+ "glyph": "♂️"
+ },
+ {
+ "unicode": "2695-fe0f",
+ "tts": "medical symbol",
+ "glyph": "⚕️"
+ },
+ {
+ "unicode": "1f54e",
+ "tts": "menorah",
+ "glyph": "🕎"
+ },
+ {
+ "unicode": "1f6b9",
+ "tts": "men’s room",
+ "glyph": "🚹"
+ },
+ {
+ "unicode": "2796",
+ "tts": "minus",
+ "glyph": "➖"
+ },
+ {
+ "unicode": "1f4f4",
+ "tts": "mobile phone off",
+ "glyph": "📴"
+ },
+ {
+ "unicode": "2716-fe0f",
+ "tts": "multiply",
+ "glyph": "✖️"
+ },
+ {
+ "unicode": "1f4db",
+ "tts": "name badge",
+ "glyph": "📛"
+ },
+ {
+ "unicode": "1f195",
+ "tts": "NEW button",
+ "glyph": "🆕"
+ },
+ {
+ "unicode": "23ed-fe0f",
+ "tts": "next track button",
+ "glyph": "⏭️"
+ },
+ {
+ "unicode": "1f196",
+ "tts": "NG button",
+ "glyph": "🆖"
+ },
+ {
+ "unicode": "1f6b3",
+ "tts": "no bicycles",
+ "glyph": "🚳"
+ },
+ {
+ "unicode": "26d4",
+ "tts": "no entry",
+ "glyph": "⛔"
+ },
+ {
+ "unicode": "1f6af",
+ "tts": "no littering",
+ "glyph": "🚯"
+ },
+ {
+ "unicode": "1f4f5",
+ "tts": "no mobile phones",
+ "glyph": "📵"
+ },
+ {
+ "unicode": "1f51e",
+ "tts": "no one under eighteen",
+ "glyph": "🔞"
+ },
+ {
+ "unicode": "1f6b7",
+ "tts": "no pedestrians",
+ "glyph": "🚷"
+ },
+ {
+ "unicode": "1f6ad",
+ "tts": "no smoking",
+ "glyph": "🚭"
+ },
+ {
+ "unicode": "1f6b1",
+ "tts": "non-potable water",
+ "glyph": "🚱"
+ },
+ {
+ "unicode": "1f17e-fe0f",
+ "tts": "O button (blood type)",
+ "glyph": "🅾️"
+ },
+ {
+ "unicode": "1f197",
+ "tts": "OK button",
+ "glyph": "🆗"
+ },
+ {
+ "unicode": "1f549-fe0f",
+ "tts": "om",
+ "glyph": "🕉️"
+ },
+ {
+ "unicode": "1f51b",
+ "tts": "ON! arrow",
+ "glyph": "🔛"
+ },
+ {
+ "unicode": "26ce",
+ "tts": "Ophiuchus",
+ "glyph": "⛎"
+ },
+ {
+ "unicode": "1f7e0",
+ "tts": "orange circle",
+ "glyph": "🟠"
+ },
+ {
+ "unicode": "1f7e7",
+ "tts": "orange square",
+ "glyph": "🟧"
+ },
+ {
+ "unicode": "2626-fe0f",
+ "tts": "orthodox cross",
+ "glyph": "☦️"
+ },
+ {
+ "unicode": "1f17f-fe0f",
+ "tts": "P button",
+ "glyph": "🅿️"
+ },
+ {
+ "unicode": "303d-fe0f",
+ "tts": "part alternation mark",
+ "glyph": "〽️"
+ },
+ {
+ "unicode": "1f6c2",
+ "tts": "passport control",
+ "glyph": "🛂"
+ },
+ {
+ "unicode": "23f8-fe0f",
+ "tts": "pause button",
+ "glyph": "⏸️"
+ },
+ {
+ "unicode": "262e-fe0f",
+ "tts": "peace symbol",
+ "glyph": "☮️"
+ },
+ {
+ "unicode": "2653",
+ "tts": "Pisces",
+ "glyph": "♓"
+ },
+ {
+ "unicode": "1f6d0",
+ "tts": "place of worship",
+ "glyph": "🛐"
+ },
+ {
+ "unicode": "25b6-fe0f",
+ "tts": "play button",
+ "glyph": "▶️"
+ },
+ {
+ "unicode": "23ef-fe0f",
+ "tts": "play or pause button",
+ "glyph": "⏯️"
+ },
+ {
+ "unicode": "2795",
+ "tts": "plus",
+ "glyph": "➕"
+ },
+ {
+ "unicode": "1f6b0",
+ "tts": "potable water",
+ "glyph": "🚰"
+ },
+ {
+ "unicode": "1f6ab",
+ "tts": "prohibited",
+ "glyph": "🚫"
+ },
+ {
+ "unicode": "1f7e3",
+ "tts": "purple circle",
+ "glyph": "🟣"
+ },
+ {
+ "unicode": "1f7ea",
+ "tts": "purple square",
+ "glyph": "🟪"
+ },
+ {
+ "unicode": "1f518",
+ "tts": "radio button",
+ "glyph": "🔘"
+ },
+ {
+ "unicode": "2622-fe0f",
+ "tts": "radioactive",
+ "glyph": "☢️"
+ },
+ {
+ "unicode": "23fa-fe0f",
+ "tts": "record button",
+ "glyph": "⏺️"
+ },
+ {
+ "unicode": "267b-fe0f",
+ "tts": "recycling symbol",
+ "glyph": "♻️"
+ },
+ {
+ "unicode": "1f534",
+ "tts": "red circle",
+ "glyph": "🔴"
+ },
+ {
+ "unicode": "2757",
+ "tts": "red exclamation mark",
+ "glyph": "❗"
+ },
+ {
+ "unicode": "2753",
+ "tts": "red question mark",
+ "glyph": "❓"
+ },
+ {
+ "unicode": "1f7e5",
+ "tts": "red square",
+ "glyph": "🟥"
+ },
+ {
+ "unicode": "1f53a",
+ "tts": "red triangle pointed up",
+ "glyph": "🔺"
+ },
+ {
+ "unicode": "1f53b",
+ "tts": "red triangle pointed down",
+ "glyph": "🔻"
+ },
+ {
+ "unicode": "00ae-fe0f",
+ "tts": "registered",
+ "glyph": "®️"
+ },
+ {
+ "unicode": "1f501",
+ "tts": "repeat button",
+ "glyph": "🔁"
+ },
+ {
+ "unicode": "1f502",
+ "tts": "repeat single button",
+ "glyph": "🔂"
+ },
+ {
+ "unicode": "1f6bb",
+ "tts": "restroom",
+ "glyph": "🚻"
+ },
+ {
+ "unicode": "25c0-fe0f",
+ "tts": "reverse button",
+ "glyph": "◀️"
+ },
+ {
+ "unicode": "27a1-fe0f",
+ "tts": "right arrow",
+ "glyph": "➡️"
+ },
+ {
+ "unicode": "2935-fe0f",
+ "tts": "right arrow curving down",
+ "glyph": "⤵️"
+ },
+ {
+ "unicode": "21a9-fe0f",
+ "tts": "right arrow curving left",
+ "glyph": "↩️"
+ },
+ {
+ "unicode": "2934-fe0f",
+ "tts": "right arrow curving up",
+ "glyph": "⤴️"
+ },
+ {
+ "unicode": "2650",
+ "tts": "Sagittarius",
+ "glyph": "♐"
+ },
+ {
+ "unicode": "264f",
+ "tts": "Scorpio",
+ "glyph": "♏"
+ },
+ {
+ "unicode": "1f500",
+ "tts": "shuffle tracks button",
+ "glyph": "🔀"
+ },
+ {
+ "unicode": "1f539",
+ "tts": "small blue diamond",
+ "glyph": "🔹"
+ },
+ {
+ "unicode": "1f538",
+ "tts": "small orange diamond",
+ "glyph": "🔸"
+ },
+ {
+ "unicode": "1f51c",
+ "tts": "SOON arrow",
+ "glyph": "🔜"
+ },
+ {
+ "unicode": "1f198",
+ "tts": "SOS button",
+ "glyph": "🆘"
+ },
+ {
+ "unicode": "2747-fe0f",
+ "tts": "sparkle",
+ "glyph": "❇️"
+ },
+ {
+ "unicode": "262a-fe0f",
+ "tts": "star and crescent",
+ "glyph": "☪️"
+ },
+ {
+ "unicode": "2721-fe0f",
+ "tts": "star of David",
+ "glyph": "✡️"
+ },
+ {
+ "unicode": "23f9-fe0f",
+ "tts": "stop button",
+ "glyph": "⏹️"
+ },
+ {
+ "unicode": "2649",
+ "tts": "Taurus",
+ "glyph": "♉"
+ },
+ {
+ "unicode": "1f51d",
+ "tts": "TOP arrow",
+ "glyph": "🔝"
+ },
+ {
+ "unicode": "2122-fe0f",
+ "tts": "trade mark",
+ "glyph": "™️"
+ },
+ {
+ "unicode": "26a7-fe0f",
+ "tts": "transgender symbol",
+ "glyph": "⚧️"
+ },
+ {
+ "unicode": "1f531",
+ "tts": "trident emblem",
+ "glyph": "🔱"
+ },
+ {
+ "unicode": "2b06-fe0f",
+ "tts": "up arrow",
+ "glyph": "⬆️"
+ },
+ {
+ "unicode": "1f199",
+ "tts": "UP! button",
+ "glyph": "🆙"
+ },
+ {
+ "unicode": "2195-fe0f",
+ "tts": "up-down arrow",
+ "glyph": "↕️"
+ },
+ {
+ "unicode": "2196-fe0f",
+ "tts": "up-left arrow",
+ "glyph": "↖️"
+ },
+ {
+ "unicode": "2197-fe0f",
+ "tts": "up-right arrow",
+ "glyph": "↗️"
+ },
+ {
+ "unicode": "1f53c",
+ "tts": "upwards button",
+ "glyph": "🔼"
+ },
+ {
+ "unicode": "1f4f3",
+ "tts": "vibration mode",
+ "glyph": "📳"
+ },
+ {
+ "unicode": "264d",
+ "tts": "Virgo",
+ "glyph": "♍"
+ },
+ {
+ "unicode": "1f19a",
+ "tts": "VS button",
+ "glyph": "🆚"
+ },
+ {
+ "unicode": "26a0-fe0f",
+ "tts": "warning",
+ "glyph": "⚠️"
+ },
+ {
+ "unicode": "1f6be",
+ "tts": "water closet",
+ "glyph": "🚾"
+ },
+ {
+ "unicode": "3030-fe0f",
+ "tts": "wavy dash",
+ "glyph": "〰️"
+ },
+ {
+ "unicode": "2638-fe0f",
+ "tts": "wheel of dharma",
+ "glyph": "☸️"
+ },
+ {
+ "unicode": "267f",
+ "tts": "wheelchair symbol",
+ "glyph": "♿"
+ },
+ {
+ "unicode": "26aa",
+ "tts": "white circle",
+ "glyph": "⚪"
+ },
+ {
+ "unicode": "2755",
+ "tts": "white exclamation mark",
+ "glyph": "❕"
+ },
+ {
+ "unicode": "2b1c",
+ "tts": "white large square",
+ "glyph": "⬜"
+ },
+ {
+ "unicode": "25fb-fe0f",
+ "tts": "white medium square",
+ "glyph": "◻️"
+ },
+ {
+ "unicode": "25fd",
+ "tts": "white medium-small square",
+ "glyph": "◽"
+ },
+ {
+ "unicode": "2754",
+ "tts": "white question mark",
+ "glyph": "❔"
+ },
+ {
+ "unicode": "25ab-fe0f",
+ "tts": "white small square",
+ "glyph": "▫️"
+ },
+ {
+ "unicode": "1f533",
+ "tts": "white square button",
+ "glyph": "🔳"
+ },
+ {
+ "unicode": "1f6ba",
+ "tts": "women’s room",
+ "glyph": "🚺"
+ },
+ {
+ "unicode": "1f7e1",
+ "tts": "yellow circle",
+ "glyph": "🟡"
+ },
+ {
+ "unicode": "1f7e8",
+ "tts": "yellow square",
+ "glyph": "🟨"
+ },
+ {
+ "unicode": "262f-fe0f",
+ "tts": "yin yang",
+ "glyph": "☯️"
+ }
+ ]
+ },
+ {
+ "name": "旗帜",
+ "emoji": [{
+ "unicode": "1f3f4",
+ "tts": "black flag",
+ "glyph": "🏴"
+ },
+ {
+ "unicode": "1f3c1",
+ "tts": "chequered flag",
+ "glyph": "🏁"
+ },
+ {
+ "unicode": "1f38c",
+ "tts": "crossed flags",
+ "glyph": "🎌"
+ },
+ {
+ "unicode": "1f3f4-200d-2620-fe0f",
+ "tts": "pirate flag",
+ "glyph": "🏴☠️"
+ },
+ {
+ "unicode": "1f3f3-fe0f-200d-1f308",
+ "tts": "rainbow flag",
+ "glyph": "🏳️🌈"
+ },
+ {
+ "unicode": "1f3f3-fe0f-200d-26a7-fe0f",
+ "tts": "transgender flag",
+ "glyph": "🏳️⚧️"
+ },
+ {
+ "unicode": "1f6a9",
+ "tts": "triangular flag",
+ "glyph": "🚩"
+ },
+ {
+ "unicode": "1f3f3-fe0f",
+ "tts": "white flag",
+ "glyph": "🏳️"
+ }
+ ]
+ }
+]
\ No newline at end of file
diff --git a/nkcModules/nkcRender/index.js b/nkcModules/nkcRender/index.js
index f8090aa32..88d25d733 100644
--- a/nkcModules/nkcRender/index.js
+++ b/nkcModules/nkcRender/index.js
@@ -9,6 +9,7 @@ const fs = require('fs');
const path = require('path');
const filePath = path.resolve(__dirname, './sources');
const files = fs.readdirSync(filePath);
+const { replaceEmojiWithImgTags } = require('../fluentuiEmoji');
const sources = {};
for (const filename of files) {
@@ -115,19 +116,30 @@ class NKCRender {
}
html = body.html();
if (type === 'article') {
- // twemoji本地化
+ html = replaceEmojiWithImgTags(html);
+ /*// twemoji本地化
html = twemoji.parse(html, {
- folder: '/2/svg',
+ folder: '/fluentui-emoji',
class: 'emoji',
+ callback: function (icon, options) {
+ console.log(icon, options);
+ return ''.concat(
+ options.base, // by default Twitter Inc. CDN
+ options.size, // by default "72x72" string
+ '/',
+ icon, // the found emoji as code point
+ options.ext, // by default ".png"
+ );
+ },
attributes: () => {
return {
'data-tag': 'nkcsource',
'data-type': 'twemoji',
};
},
- base: '/twemoji',
- ext: '.svg',
- });
+ base: '/statics',
+ ext: '.png',
+ });*/
}
// 过滤标签及样式
diff --git a/nkcModules/tools.js b/nkcModules/tools.js
index 22f865c1a..42769ac6a 100644
--- a/nkcModules/tools.js
+++ b/nkcModules/tools.js
@@ -99,10 +99,12 @@ var Tools = function () {
return fileDomain + '/sticker/' + id;
}
case 'emoji': {
- return '/twemoji/2/svg/' + id + '.svg';
+ return '/statics/fluentui-emoji/' + id + '.png';
+ // return '/twemoji/2/svg/' + id + '.svg';
}
case 'twemoji': {
- return '/twemoji/2/svg/' + id + '.svg';
+ return '/statics/fluentui-emoji/' + id + '.png';
+ // return '/twemoji/2/svg/' + id + '.svg';
}
case 'post': {
if (t) {
diff --git a/package-lock.json b/package-lock.json
index adab3f9f4..d599649a8 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -47,6 +47,7 @@
"echarts": "^5.3.2",
"elasticsearch": "^16.7.2",
"element-ui": "^2.15.2",
+ "emoji-regex": "^10.4.0",
"fastclick": "^1.0.6",
"fluent-ffmpeg": "^2.1.2",
"font-awesome": "^4.7.0",
@@ -121,7 +122,7 @@
"swiper": "^10.2.0",
"transliteration": "^2.2.0",
"trek-captcha": "^0.4.0",
- "twemoji": "^2.5.0",
+ "twemoji": "^14.0.2",
"ua-parser-js": "^1.0.36",
"uglify-js": "^3.10.4",
"url-search-params-polyfill": "^8.1.1",
@@ -8755,10 +8756,9 @@
}
},
"node_modules/emoji-regex": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
- "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
- "license": "MIT"
+ "version": "10.4.0",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.4.0.tgz",
+ "integrity": "sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw=="
},
"node_modules/emojis-list": {
"version": "3.0.0",
@@ -20612,6 +20612,11 @@
"node": ">=8"
}
},
+ "node_modules/string-width/node_modules/emoji-regex": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="
+ },
"node_modules/string.prototype.repeat": {
"version": "0.2.0",
"resolved": "https://registry.npmjs.org/string.prototype.repeat/-/string.prototype.repeat-0.2.0.tgz",
@@ -21696,13 +21701,52 @@
"license": "Unlicense"
},
"node_modules/twemoji": {
- "version": "2.5.1",
- "resolved": "https://registry.npmjs.org/twemoji/-/twemoji-2.5.1.tgz",
- "integrity": "sha512-ytDuJGq+dj9UuYn99Zm4YLoJJLTMRE/muXPtM+TXLRsPY2QIyYLzRXfkkhzc/ce1RtcEzu7GsUE6oe6ytGkdqw==",
- "license": [
- "MIT",
- "CC-BY-4.0"
- ]
+ "version": "14.0.2",
+ "resolved": "https://registry.npmjs.org/twemoji/-/twemoji-14.0.2.tgz",
+ "integrity": "sha512-BzOoXIe1QVdmsUmZ54xbEH+8AgtOKUiG53zO5vVP2iUu6h5u9lN15NcuS6te4OY96qx0H7JK9vjjl9WQbkTRuA==",
+ "dependencies": {
+ "fs-extra": "^8.0.1",
+ "jsonfile": "^5.0.0",
+ "twemoji-parser": "14.0.0",
+ "universalify": "^0.1.2"
+ }
+ },
+ "node_modules/twemoji-parser": {
+ "version": "14.0.0",
+ "resolved": "https://registry.npmjs.org/twemoji-parser/-/twemoji-parser-14.0.0.tgz",
+ "integrity": "sha512-9DUOTGLOWs0pFWnh1p6NF+C3CkQ96PWmEFwhOVmT3WbecRC+68AIqpsnJXygfkFcp4aXbOp8Dwbhh/HQgvoRxA=="
+ },
+ "node_modules/twemoji/node_modules/fs-extra": {
+ "version": "8.1.0",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz",
+ "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==",
+ "dependencies": {
+ "graceful-fs": "^4.2.0",
+ "jsonfile": "^4.0.0",
+ "universalify": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=6 <7 || >=8"
+ }
+ },
+ "node_modules/twemoji/node_modules/fs-extra/node_modules/jsonfile": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz",
+ "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==",
+ "optionalDependencies": {
+ "graceful-fs": "^4.1.6"
+ }
+ },
+ "node_modules/twemoji/node_modules/jsonfile": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-5.0.0.tgz",
+ "integrity": "sha512-NQRZ5CRo74MhMMC3/3r5g2k4fjodJ/wh8MxjFbCViWKFjxrnudWSY5vomh+23ZaXzAS7J3fBZIR2dV6WbmfM0w==",
+ "dependencies": {
+ "universalify": "^0.1.2"
+ },
+ "optionalDependencies": {
+ "graceful-fs": "^4.1.6"
+ }
},
"node_modules/tx2": {
"version": "1.0.5",
diff --git a/package.json b/package.json
index 3f1ede04b..b3828c089 100644
--- a/package.json
+++ b/package.json
@@ -82,6 +82,7 @@
"echarts": "^5.3.2",
"elasticsearch": "^16.7.2",
"element-ui": "^2.15.2",
+ "emoji-regex": "^10.4.0",
"fastclick": "^1.0.6",
"fluent-ffmpeg": "^2.1.2",
"font-awesome": "^4.7.0",
@@ -156,7 +157,7 @@
"swiper": "^10.2.0",
"transliteration": "^2.2.0",
"trek-captcha": "^0.4.0",
- "twemoji": "^2.5.0",
+ "twemoji": "^14.0.2",
"ua-parser-js": "^1.0.36",
"uglify-js": "^3.10.4",
"url-search-params-polyfill": "^8.1.1",
diff --git a/pages/bootstrap_base.pug b/pages/bootstrap_base.pug
index c5032cc21..afc4097af 100644
--- a/pages/bootstrap_base.pug
+++ b/pages/bootstrap_base.pug
@@ -34,7 +34,7 @@ block head
+includeJS('/jquery/jquery-ui.1.11.4.min.js', true)
+includeJS('/jquery/jquery.ui.touch-punch.min.js', true)
// twemoji 表情
- +includeJS('/twemoji/2/twemoji.min.js', true)
+ +includeJS('/twemoji/dist/twemoji.min.js', true)
//- 弹窗模块
+includeJS("/sweetalert2/dist/sweetalert2.all.min.js", true)
// bootstrap 相关
diff --git a/pages/lib/js/dataConversion.js b/pages/lib/js/dataConversion.js
index 126e1ac2d..53a94fcdd 100644
--- a/pages/lib/js/dataConversion.js
+++ b/pages/lib/js/dataConversion.js
@@ -7,6 +7,7 @@
import { marked } from 'marked';
import createDOMPurify from 'dompurify';
import { getState } from './state';
+import { getEmojiCharByUnicode } from '../../../nkcModules/fluentuiEmoji';
export function strToObj(str) {
return JSON.parse(decodeURIComponent(str));
@@ -108,15 +109,15 @@ export function resourceToHtml(type, rid, name) {
);
},
twemoji: function () {
- var emojiChar = twemoji.convert.fromCodePoint(rid);
+ const emojiChar = getEmojiCharByUnicode(rid);
return (
"'
+ '.png">'
);
},
formula: function () {},
@@ -154,9 +155,9 @@ export function replaceTwemojiCharWithImage(content) {
id +
"' data-char='" +
char +
- '\' src="/twemoji/2/svg/' +
+ '\' src="/statics/fluentui-emoji/' +
id +
- '.svg">'
+ '.png">'
);
});
}
diff --git a/pages/lib/js/emoji.js b/pages/lib/js/emoji.js
new file mode 100644
index 000000000..6d8529631
--- /dev/null
+++ b/pages/lib/js/emoji.js
@@ -0,0 +1,3 @@
+import { fluentuiEmoji } from '../../../nkcModules/fluentuiEmoji';
+
+export const emojiGroups = fluentuiEmoji;
diff --git a/pages/lib/js/screen.js b/pages/lib/js/screen.js
new file mode 100644
index 000000000..fc09e7490
--- /dev/null
+++ b/pages/lib/js/screen.js
@@ -0,0 +1,13 @@
+export function getScreenSizeModel() {
+ const width = window.innerWidth;
+
+ if (width < 768) {
+ return 'xs'; // 手机
+ } else if (width >= 768 && width < 992) {
+ return 'sm'; // 平板
+ } else if (width >= 992 && width < 1200) {
+ return 'md'; // 桌面
+ } else {
+ return 'lg'; // 大桌面
+ }
+}
diff --git a/pages/lib/js/scrollBar.js b/pages/lib/js/scrollBar.js
index 8267dcd72..70df011d0 100644
--- a/pages/lib/js/scrollBar.js
+++ b/pages/lib/js/scrollBar.js
@@ -1,15 +1,20 @@
/*
-* 判断页面是否存在滚动条
-* @return {Boolean}
-* */
+ * 判断页面是否存在滚动条
+ * @return {Boolean}
+ * */
+import { debounce } from './execution';
+
export function hasScrollBar() {
- return document.body.scrollHeight > (window.innerHeight || document.documentElement.clientHeight);
+ return (
+ document.body.scrollHeight >
+ (window.innerHeight || document.documentElement.clientHeight)
+ );
}
/*
-* 获取浏览器滚动条宽度
-* @return {Number} px
-* */
+ * 获取浏览器滚动条宽度
+ * @return {Number} px
+ * */
export function getScrollBarWidth() {
const scrollDiv = document.createElement('div');
scrollDiv.style.cssText = `width: 20px; height: 20px;overflow: scroll; position: absolute; top: -100px;`;
@@ -18,6 +23,25 @@ export function getScrollBarWidth() {
document.body.removeChild(scrollDiv);
return scrollBarWidth;
}
-export function scrollFun(dom, top = 0, left = 0){
- dom.scroll(top, left)
-}
\ No newline at end of file
+export function scrollFun(dom, top = 0, left = 0) {
+ dom.scroll(top, left);
+}
+
+export const disableScroll = debounce(function () {
+ const body = $('body');
+ const cssObj = {
+ overflow: 'hidden',
+ };
+ if (hasScrollBar()) {
+ const scrollBarWidth = getScrollBarWidth();
+ cssObj['padding-right'] = scrollBarWidth + 'px';
+ }
+ body.css(cssObj);
+}, 200);
+
+export const enableScroll = debounce(function () {
+ $('body').css({
+ overflow: '',
+ 'padding-right': '',
+ });
+}, 200);
diff --git a/pages/lib/vue/DraggableDialog/DraggableDialog.vue b/pages/lib/vue/DraggableDialog/DraggableDialog.vue
new file mode 100644
index 000000000..c308bc480
--- /dev/null
+++ b/pages/lib/vue/DraggableDialog/DraggableDialog.vue
@@ -0,0 +1,59 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/pages/lib/vue/DraggableDialog/DraggableDialogLG.vue b/pages/lib/vue/DraggableDialog/DraggableDialogLG.vue
new file mode 100644
index 000000000..6e4e70568
--- /dev/null
+++ b/pages/lib/vue/DraggableDialog/DraggableDialogLG.vue
@@ -0,0 +1,111 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/pages/lib/vue/DraggableDialog/DraggableDialogXS.vue b/pages/lib/vue/DraggableDialog/DraggableDialogXS.vue
new file mode 100644
index 000000000..5fd564d4e
--- /dev/null
+++ b/pages/lib/vue/DraggableDialog/DraggableDialogXS.vue
@@ -0,0 +1,94 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/pages/lib/vue/EmojiSelector.vue b/pages/lib/vue/EmojiSelector.vue
index f5e10ca17..a7bff2b8f 100644
--- a/pages/lib/vue/EmojiSelector.vue
+++ b/pages/lib/vue/EmojiSelector.vue
@@ -1,49 +1,74 @@
- .emoji-selector
- .emoji-header
- .emoji-title(ref="draggableHandle") 表情选择
- .emoji-close(@click="close")
- .fa.fa-remove
- .emoji-form
- .checkbox
- label.m-r-1
- input(type="checkbox" v-model="multipleSelection")
- span 多选模式
- span.text-success(v-if="selected") 已选择
+ draggable-dialog(title="Emoji 表情" width="50rem" height='35rem' heightXS='70%' ref="draggableDialog")
+ .emoji-selector-container
+ .emoji-selector-nav-container
+ .emoji-selector-nav-item(
+ v-for="item in emojiGroups"
+ @click="selectGroup(item.name)"
+ :class="{'active': selectedGroupName === item.name}"
+ ) {{ item.name }}
+ .emoji-selector-image-container
+ .emoji-selector-image-item(
+ v-for="emoji in selectedGroup.emoji"
+ @click="selectEmoji(emoji)"
+ :key="emoji.unicode"
+ :class="{'bg-info': selectedEmoji.includes(emoji)}"
+ :title="emoji.tts"
+ )
+ img(:src="getUrl('emoji', emoji.unicode)")
+
- .emoji-container
- .emoji-item(v-for="(url, index) in emojiUrl" @click="selectEmoji(index)")
- img(:src="url")