Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
H
haoban-manage3.0
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
haoban3.0
haoban-manage3.0
Commits
eb91ad3e
Commit
eb91ad3e
authored
Nov 07, 2022
by
徐高华
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
test
parent
8ed95c5c
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
20 additions
and
66 deletions
+20
-66
MaterialController.java
.../gic/haoban/manage/web/controller/MaterialController.java
+9
-5
EmojiFilterUtil.java
...java/com/gic/haoban/manage/web/utils/EmojiFilterUtil.java
+11
-61
No files found.
haoban-manage3-web/src/main/java/com/gic/haoban/manage/web/controller/MaterialController.java
View file @
eb91ad3e
...
...
@@ -4,6 +4,8 @@ package com.gic.haoban.manage.web.controller;
import
java.util.Arrays
;
import
java.util.List
;
import
java.util.Objects
;
import
java.util.regex.Matcher
;
import
java.util.regex.Pattern
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
...
...
@@ -24,8 +26,6 @@ import com.gic.haoban.manage.api.service.MaterialApiService;
import
com.gic.haoban.manage.web.errCode.HaoBanErrCode
;
import
com.gic.haoban.manage.web.utils.EmojiFilterUtil
;
import
cn.hutool.extra.emoji.EmojiUtil
;
@RestController
public
class
MaterialController
extends
WebBaseController
{
...
...
@@ -275,14 +275,18 @@ public class MaterialController extends WebBaseController {
return
resultResponse
(
HaoBanErrCode
.
ERR_1
);
}
public
String
checkEmoji
(
String
msg
)
{
public
static
String
checkEmoji
(
String
msg
)
{
if
(
StringUtils
.
isBlank
(
msg
))
{
return
null
;
}
String
s
=
EmojiFilterUtil
.
filterEmoji
Last
(
msg
)
;
if
(
!
msg
.
equals
(
s
))
{
String
s
=
EmojiFilterUtil
.
filterEmoji
(
msg
)
;
if
(
msg
.
equals
(
s
))
{
return
"保存失败,不支持特殊表情字符"
;
}
return
null
;
}
public
static
void
main
(
String
[]
args
)
{
System
.
out
.
println
(
EmojiFilterUtil
.
filterEmoji
(
"aasdsa查$%^&"
)
);;
}
}
haoban-manage3-web/src/main/java/com/gic/haoban/manage/web/utils/EmojiFilterUtil.java
View file @
eb91ad3e
package
com
.
gic
.
haoban
.
manage
.
web
.
utils
;
import
com.gic.commons.util.StringUtil
;
public
class
EmojiFilterUtil
{
public
static
void
main
(
String
[]
args
)
{
System
.
out
.
println
(
filterEmoji
(
"🈶️"
));
;
}
public
static
String
filterEmojiLast
(
String
content
)
{
byte
[]
conbyte
=
content
.
getBytes
();
for
(
int
i
=
0
;
i
<
conbyte
.
length
;
i
++)
{
if
((
conbyte
[
i
]
&
0xF8
)
==
0xF0
)
{
for
(
int
j
=
0
;
j
<
4
;
j
++)
{
conbyte
[
i
+
j
]
=
0x30
;
}
i
+=
3
;
}
}
content
=
new
String
(
conbyte
);
return
filterEmoji
(
content
.
replaceAll
(
"0000"
,
""
));
/**
* 是否包含表情
*/
private
static
boolean
isEmojiCharacter
(
char
codePoint
)
{
return
!((
codePoint
==
0x0
)
||
(
codePoint
==
0x9
)
||
(
codePoint
==
0xA
)
||
(
codePoint
==
0xD
)
||
((
codePoint
>=
0x20
)
&&
(
codePoint
<=
0xD7FF
))
||
((
codePoint
>=
0xE000
)
&&
(
codePoint
<=
0xFFFD
))
||
((
codePoint
>=
0x10000
)
&&
(
codePoint
<=
0x10FFFF
)));
}
private
static
String
filterEmoji
(
String
source
)
{
if
(!
containsEmoji
(
source
))
{
return
source
;
// 如果不包含,直接返回
}
// 到这里铁定包含
public
static
String
filterEmoji
(
String
source
)
{
StringBuilder
buf
=
null
;
int
len
=
source
.
length
();
if
(
len
>
20
)
{
return
"*"
;
}
for
(
int
i
=
0
;
i
<
len
;
i
++)
{
char
codePoint
=
source
.
charAt
(
i
);
if
(
isEmojiCharacter
(
codePoint
))
{
if
(!
isEmojiCharacter
(
codePoint
))
{
// 如果不包含 则将字符append
if
(
buf
==
null
)
{
buf
=
new
StringBuilder
(
source
.
length
());
}
buf
.
append
(
codePoint
);
}
else
{
}
}
if
(
buf
==
null
)
{
return
source
;
// 如果没有找到 emoji表情,则返回源字符串
}
else
{
...
...
@@ -63,30 +39,4 @@ public class EmojiFilterUtil {
}
private
static
boolean
isEmojiCharacter
(
char
codePoint
)
{
return
(
codePoint
==
0x0
)
||
(
codePoint
==
0x9
)
||
(
codePoint
==
0xA
)
||
(
codePoint
==
0xD
)
||
((
codePoint
>=
0x20
)
&&
(
codePoint
<=
0xD7FF
))
||
((
codePoint
>=
0xE000
)
&&
(
codePoint
<=
0xFFFD
))
||
((
codePoint
>=
0x10000
)
&&
(
codePoint
<=
0x10FFFF
));
}
// 判断表情符
private
static
boolean
containsEmoji
(
String
source
)
{
if
(
StringUtil
.
isBlank
(
source
))
{
return
false
;
}
source
=
source
.
replaceAll
(
"[\\ud800\\udc00-\\udbff\\udfff\\ud800-\\udfff]"
,
"*"
);
int
len
=
source
.
length
();
for
(
int
i
=
0
;
i
<
len
;
i
++)
{
char
codePoint
=
source
.
charAt
(
i
);
if
(
isEmojiCharacter
(
codePoint
))
{
// do nothing,判断到了这里表明,确认有表情字符
return
true
;
}
}
return
false
;
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment