1
CEBBCAT 2022-12-16 22:55:18 +08:00
|
2
iSNN OP @CEBBCAT 连接是 How To Remove a Character from a String in Java ,不是 how to remove non-utf8 character from a string in java 替换这些编码找不到的字符...我只是举个列子 0x01 与 0x02 。还有很多这种乱七八糟的东西...
|
3
tramm 2022-12-17 09:58:38 +08:00
charAt 一个一个字符判断 :P
|
4
iSNN OP @tramm 那要怎么判断呢...感觉和上面那位说 replace 的仁兄说了一样的话...现在问题不是不能替换,不是单纯的找不到,而是不知道该找什么内容。我只是举例了 0x01 与 0x02 两个编码,charAt 找到这两个替换当然简单。但是可不只是这两个,后面还有很多这种 0x 字符,这种做法工程实现上不现实吧。只存在理论上可行
|
5
iX8NEGGn 2022-12-17 14:06:09 +08:00 via iPhone
@iSNN 你举例的看着都属于 C0 或 C1 控制字符,直接把这些替换了,之后可以排出这些控制字符,不允许提交
|
6
myther8888 2022-12-17 16:55:24 +08:00
sublime 用正则替换下
|
7
angryfish 2022-12-17 17:21:45 +08:00
你在 word 上复制能重现吗?
|
8
janus77 2022-12-17 22:10:28 +08:00
sublime 和 idea 的文本编码不一样?检查一下
|
9
nieyuanhong 2022-12-18 03:28:58 +08:00
感觉列举的例子有点少,你需要分析 abc 后边的奇怪字符的 ASCII 码,确定这些奇怪字符的码位范围,范围确定后就好办了,直接正则移除掉。当然如果奇怪的字符包括标点符号和英文字母以及汉字的话,就只能从前端找办法了。
|
10
iSNN OP 看了下各位的回答,感谢各位大佬。现在的方案只能采用 找到这些奇怪的符号,再用 replace 替换。
国内的就没找到相关的好的回答,国外倒是给出了许多正则什么的,但是我仔细看了下,试了下。 这些正则的编码范围只是提取出欧美 字母语言的范围,排除了包括中日韩等文字。 不过这个方案也不适合我们的场景,比较中英文或者多国语言混杂比较常见。这个正则就十分的复杂了 |