服务端屏蔽emoji表情

2024-04-02 18:18
文章标签 服务端 表情 emoji 屏蔽

本文主要是介绍服务端屏蔽emoji表情,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

最近做项目,因为项目用的是mysql,utf-8的字符集,存放的长度为3字节,而emoji表情为4字节,在存入数据库时,就会抛出异常,需要将mysql字符集改为utf8mb4 ,但是生产中是不可能的,所以只能屏蔽,查了很多资料,找到一个不错的文章,现转载,留作记录,以备不时之需。

一、emoji 的范围

  1. 杂项符号及图形
    杂项符号及图形一共有768个字符,范围为: U+1F300 ~ U+1F5FF,在 Java 中正则表达式为:

“[\uD83C\uDF00-\uD83D\uDDFF]”
2. 增补符号及图形
增补符号及图形中一共有82个字符,范围为: U+1F900 ~ U+1F9FF,在 Java 中正则表达式为:

“[\uD83E\uDD00-\uD83E\uDDFF]”
3. 表情符号
表情符号一共有80个字符,范围为: U+1F600 ~ U+1F64F,在 Java 中正则表达式为:

“[\uD83D\uDE00-\uD83D\uDE4F]”
4. 交通及地图符号
交通及地图符号一共有103个字符,范围为: U+1F680 ~ U+1F6FF,在 Java 中正则表达式为:

“[\uD83D\uDE80-\uD83D\uDEFF]”
5. 杂项符号
杂项符号一共有256个字符,范围为: U+2600 ~ U+26FF 或拼上 U+FE0F,在 Java 中正则表达式为:

“[\u2600-\u26FF]\FE0F?”
6. 装饰符号
装饰符号一共有192个字符,范围为: U+2700 ~ U+27BF 或拼上 U+FE0F,在 Java 中正则表达式为:

“[\u2700-\u27BF]\FE0F?”
7. 封闭式字母数字符号
封闭式字母数字符号中只有一个 emoji 字符,为: U+24C2 或拼上 U+FE0F,在 Java 中正则表达式为:

“\u24C2\uFE0F?”
8. 封闭式字母数字补充符号
封闭式字母数字补充符号包含41个 emoji 字符,其中26个属于区域指示符号

8.1 区域指示符号
区域指示符号一共有26个字符,范围为: U+1F1E6 ~ U+1F1FF,并且其中每两个字母可以代表一个国家或地区的旗帜,在 Java 中正则表达式为:

“[\uD83C\uDDE6-\uD83C\uDDFF]{1,2}”
8.2 其他封闭式字母数字补充 emoji 符号
除了区域指示符号外其他的 emoji 字符为: U+1F170、 U+1F171、 U+1F17E、 U+1F17F、 U+1F18E 和 U+1F191 ~ U+1F19A 或拼上 U+FE0F,在 Java 中正则表达式为:

“[\uD83C\uDD70\uD83C\uDD71\uD83C\uDD7E\uD83C\uDD7F\uD83C\uDD8E\uD83C\uDD91-\uD83C\uDD9A]\uFE0F?”
9. 键帽符号(#⃣, asterisk and 0⃣-9⃣)
键帽符号一共有12个字符,其组成方式为: U+0023、 U+002A 和 U+0030 ~ U+0039 12个键帽基础字符加上 U+FE0F 和 U+20E3, 如:

“\u0023\u20E3” > “#⃣”

“\u002A\uFE0F\u20E3” > “*️⃣”

“\u0030\u20E3” > “0⃣”

“\u0039\u20E3” > “9⃣”
其中 uFE0F 是可选的,所以在 Java 中正则表达式为:

“[\u0023\u002A[\u0030-\u0039]]\uFE0F?\u20E3”
10. 箭头符号
箭头符号中有8个 emoji 字符,范围为: U+2194 ~ U+2199 和 U+21A9 ~ U+21AA 或拼上 U+FE0F,在 Java 中正则表达式为:

“[\u2194-\u2199\u21A9-\u21AA]\uFE0F?”
11. 杂项符号及箭头
杂项符号及箭头中有7个 emoji 字符,分别为: U+2B05 ~ U+2B07、 U+2B1B、 U+2B1C、 U+2B50 和 U+2B55 或拼上 U+FE0F,在 Java 中正则表达式为:

“[\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55]\uFE0F?”
12. 补充箭头符号
补充箭头符号中有2个 emoji 字符,分别为: U+2934 和 U+2935 或拼上 U+FE0F,在 Java 中正则表达式为:

“[\u2934\u2935]\uFE0F?”
13. CJK 符号和标点
CJK (Chinese, Japanese and Korean) 符号和标点中有两个 emoji 字符,分别为: U+3030 和 U+303D 或拼上 U+FE0F,在 Java 中正则表达式为:

“[\u3030\u303D]\uFE0F?”
14. 封闭式 CJK 字母和月份符号
封闭式 CJK 字母和月份符号中有两个 emoji 字符,分别为:U+3297 和 U+3299 或拼上 U+FE0F,在 Java 中正则表达式为:

“[\u3297\u3299]\uFE0F?”
15. 封闭式表意文字补充符号
封闭式表意文字补充符号中有15个 emoji 字符, 分别为: U+1F201、 U+1F202、 U+1F21A、 U+1F22F、 U+1F232 ~ U+1F23A、 U+1F250、 U+1F251 或拼上 U+FE0F,在 Java 中正则表达式为:

“[\uD83C\uDE01\uD83C\uDE02\uD83C\uDE1A\uD83C\uDE2F\uD83C\uDE32-\uD83C\uDE3A\uD83C\uDE50\uD83C\uDE51]\uFE0F?”
16. 一般标点
一般标点符号中有2个 emoji 字符,分别为: U+203C 和 U+2049 或拼上 U+FE0F,在 Java 中正则表达式为:

“[\u203C\u2049]\uFE0F?”
17. 几何图形
几何图形中有8个 emoji 字符,分别为: U+25AA、 U+25AB、 U+25B6、 U+25C0 和 U+25FB ~ U+25FE 或拼上 U+FE0F,在 Java 中正则表达式为:

“[\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE]\uFE0F?”
18. 拉丁文补充符号
拉丁文补充符号中有2个 emoji 字符,分别为: U+00A9 和 U+00AE 或拼上 U+FE0F,在 Java 中正则表达式为:

“[\u00A9\u00AE]\uFE0F?”
19. 字母符号
字母符号中有2个 emoji 字符,分别为: U+2122 和 U+2139 或拼上 U+FE0F,在 Java 中正则表达式为:

“[\u2122\u2139]\uFE0F?”
20. 麻将牌
麻将牌中只有一个 emoji 字符,为: U+1F004 或拼上 U+FE0F,在 Java 中正则表达式为:

“\uD83C\uDC04\uFE0F?”
21. 扑克牌
扑克牌中只有一个 emoji 字符,为: U+1F0CF 或拼上 U+FE0F,在 Java 中正则表达式为:

“\uD83C\uDCCF\uFE0F?”
22. 杂项技术符号
杂项技术符号中有18个 emoji 字符,分别为: U+231A、 U+231B、 U+2328、 U+23CF、 U+23E9 ~ U+23F3 和 U+23F8 ~ U+23FA 或拼上 U+FE0F,在 Java 中正则表达式为:

“[\u231A\u231B\u2328\u23CF\u23E9-\u23F3\u23F8-\u23FA]\uFE0F?”
二、包含所有 emoji 的正则表达式
“(?:[\uD83C\uDF00-\uD83D\uDDFF]|[\uD83E\uDD00-\uD83E\uDDFF]|[\uD83D\uDE00-\uD83D\uDE4F]|[\uD83D\uDE80-\uD83D\uDEFF]|[\u2600-\u26FF]\uFE0F?|[\u2700-\u27BF]\uFE0F?|\u24C2\uFE0F?|[\uD83C\uDDE6-\uD83C\uDDFF]{1,2}|[\uD83C\uDD70\uD83C\uDD71\uD83C\uDD7E\uD83C\uDD7F\uD83C\uDD8E\uD83C\uDD91-\uD83C\uDD9A]\uFE0F?|[\u0023\u002A\u0030-\u0039]\uFE0F?\u20E3|[\u2194-\u2199\u21A9-\u21AA]\uFE0F?|[\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55]\uFE0F?|[\u2934\u2935]\uFE0F?|[\u3030\u303D]\uFE0F?|[\u3297\u3299]\uFE0F?|[\uD83C\uDE01\uD83C\uDE02\uD83C\uDE1A\uD83C\uDE2F\uD83C\uDE32-\uD83C\uDE3A\uD83C\uDE50\uD83C\uDE51]\uFE0F?|[\u203C\u2049]\uFE0F?|[\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE]\uFE0F?|[\u00A9\u00AE]\uFE0F?|[\u2122\u2139]\uFE0F?|\uD83C\uDC04\uFE0F?|\uD83C\uDCCF\uFE0F?|[\u231A\u231B\u2328\u23CF\u23E9-\u23F3\u23F8-\u23FA]\uFE0F?)”

这篇关于服务端屏蔽emoji表情的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/870710

相关文章

Java Websocket实例【服务端与客户端实现全双工通讯】

Java Websocket实例【服务端与客户端实现全双工通讯】 现很多网站为了实现即时通讯,所用的技术都是轮询(polling)。轮询是在特定的的时间间隔(如每1秒),由浏览器对服务器发 出HTTP request,然后由服务器返回最新的数据给客服端的浏览器。这种传统的HTTP request 的模式带来很明显的缺点 – 浏 览器需要不断的向服务器发出请求,然而HTTP

JAVA用最简单的方法来构建一个高可用的服务端,提升系统可用性

一、什么是提升系统的高可用性 JAVA服务端,顾名思义就是23体验网为用户提供服务的。停工时间,就是不能向用户提供服务的时间。高可用,就是系统具有高度可用性,尽量减少停工时间。如何用最简单的方法来搭建一个高效率可用的服务端JAVA呢? 停工的原因一般有: 服务器故障。例如服务器宕机,服务器网络出现问题,机房或者机架出现问题等;访问量急剧上升,导致服务器压力过大导致访问量急剧上升的原因;时间和

超级 密码加密 解密 源码,支持表情,符号,数字,字母,加密

超级 密码加密 解密 源码,支持表情,符号,数字,字母,加密 可以将表情,动物,水果,表情,手势,猫语,兽语,狗语,爱语,符号,数字,字母,加密和解密 可以将文字、字母、数字、代码、标点符号等内容转换成新的文字形式,通过简单的文字以不同的排列顺序来表达不同的内容 源码截图: https://www.httple.net/152649.html

Linux中如何屏蔽信号

本篇文章主要学习Linux的信号处理机制,着重学习屏蔽信号部分。屏蔽信号处理的两种方式类似于信号的捕获,一种方式是直接对其设置,另一种方式是先获得描述符的掩码,然后对其设置操作。 本文主要参考自《嵌入式linux系统使用开发》,作者何永琪,Thanks. 在linux系统中,如何处理某个进程发送的一个特定信号呢?一般来说有三种方式: 1) 忽略信号 2) 屏蔽信号 3) 为该信号添

springboot websocket 服务端

在Spring Boot中使用WebSocket实现服务端和Java客户端的实时通信,可以分为几个步骤来完成。这里将详细介绍服务端和Java客户端的具体实现。 服务端设置 添加依赖: 在pom.xml文件中添加Spring WebSocket的依赖。 <dependency><groupId>org.springframework.boot</groupId><artifactId>spr

CF #283 (Div. 2) A.(屏蔽数组元素)

题目链接:http://codeforces.com/contest/496/problem/A 解题思路: n不是很大,所以暴力。每次屏蔽掉a[ i ]中的一个元素,注意头和尾不能屏蔽。屏蔽后当i == j 时做特殊处理,即cnt = a[ i+ 1 ] - a[ i - 1 ]。最后更新最小值即可。 完整代码: #include <functional>#includ

【深入解析】AI工作流中的HTTP组件:客户端与服务端执行的区别

在当今快速发展的技术环境中,AI工作流的设计和实现变得愈发重要。尤其是在处理HTTP组件时,前端执行与后端执行之间的区别,往往会对系统的安全性和数据的准确性产生深远的影响。今天,我们就来深入探讨这一话题,揭示前端执行如何有效避免风控,以及它在获取本地数据方面的优势。 AI工作流+各种大模型=能用AI-工作流传送门:https://www.nyai.chat/chat?invite=nyai_

Spring boot 项目作为客户端调用 服务端websocket

文章目录 java客户端请求websocketSpring boot 导入包客户端调用方法测试执行方法connectWebSocketHandshakeMessagesendHandshakeWebSocketConfig.queue.take方法对应实体类配置 yaml 资源WebSocketConfig 配置类注入配置websocketUrl:LinkedBlockingQueueLin

【Http 每日一问,访问服务端的鉴权Token放在header还是cookie更合适?】

结论先行: token静态的,不变的,放在header里面。 典型场景 ,每次访问时需要带个静态token请求服务端,向服务端表明是谁请求,此时token也可以认为是个固定的access-key。token动态的,会失效,放在cookie里面。 典型场景,业务登录态token,存在有效期的,过一段时间可能会失效。 下面具体展开下。 在选择将鉴权 Token 放在 HTTP Header 还是

和服务端系统的通信

首先web网站 前端浏览器 和 后端系统 是通过HTTP协议进行通信的 同步请求&异步请求: 同步请求:可以从浏览器中直接获取的(HTML/CSS/JS这样的静态文件资源),这种获取请求的http称为同步请求 异步请求:js代码需要到服务端提交、获取数据(往往是要求服务端程序进行数据库操作后,再进行代码处理,返回的数据),这种请求的http称为异步请求,往往被称为API请求;提供这种服务的后端