有几个字复制时会看到字的顺序会发生前后的变化,求解!

2021-01-05 10:01:37 +08:00
 dier

今天在微信看到一段转发消息,有人跟我说在安卓手机上看到的字序是错的,但在电脑上看字序又是正确的。经过我的多次尝试,我发现是这几个字本身不是正常输入法输入的文字。但不知道具体是什么字符或者是什么编码格式的内容导致会出现这样的情况。

这是微信中的原始内容 https://ftp.bmp.ovh/imgs/2021/01/85b23d8e35912c42.png

鼠标选中时会发生变化 https://ftp.bmp.ovh/imgs/2021/01/abb049a1e0893d0f.png

单独将这几个字复制到输入框和 word 中对比 https://ftp.bmp.ovh/imgs/2021/01/e6bda5d7b6cee080.png

应一楼要求,我复制上来,但不能保证内容还是一样的效果,内容如下:

广州增‮区城‬新塘凤‮城凰‬中英文学校八‮班七‬上完晚自习,11 点多老师打电话,没找到,至今未回学校,也没回家,请知情者尽快联‮重系‬谢,家人非‮着常‬急

2349 次点击
所在节点    问与答
14 条回复
liqingcan
2021-01-05 10:05:36 +08:00
把文字复制出来我们体验一下这个神奇的效果
dier
2021-01-05 10:08:58 +08:00
@liqingcan 我编辑了,最后一段内容就是,但不能保证还会有一样的效果
wysnylc
2021-01-05 10:09:07 +08:00
qq515391365
2021-01-05 10:10:53 +08:00
是谣言?为了避开检测?
Shirakawa
2021-01-05 10:13:39 +08:00
把这段拖到浏览器地址栏会出现 广州增%E2%80%AE 区城%E2%80%AC 新塘凤%E2%80%AE 城凰%E2%80%AC
应该就是 E2 80 AC 导致的顺序变化
dier
2021-01-05 10:14:03 +08:00
@wysnylc 这几个字是怎么插入而且不显示的呢?
dier
2021-01-05 10:16:39 +08:00
@qq515391365 结合楼上的验证,你这么一说还真有可能
yolee599
2021-01-05 10:22:46 +08:00
插入的编码在字库里没有字体
wysnylc
2021-01-05 10:28:19 +08:00
@dier #6 unicode 隐藏字符
hingle
2021-01-05 10:32:07 +08:00
“right to left override” (RLO) character
a1gslyghmqnl
2021-01-05 10:39:29 +08:00
8238 是 0X202E(Unicode Right-to-Left Override, RLO) ,8236 是 0X202C ( Unicode Pop Directional Formatting, PDF)。

在 unicode 字符集中有不少这样的排版字符。遇到 RLO 后,后面的文字从右向左排列;遇到 PDF 后恢复从左向右的排列。当时是为了显示阿拉伯文等从右到左排版的文字而设计的。

所以这就是先随机选取几个子字符串进行翻转,然后在翻转过的字符串两端加排版标记,让它们在屏幕上以从右到左的顺序显示。

参见:
https://en.wikipedia.org/wiki/Bidirectional_text#Pops
https://www.compart.com/en/unicode/U+202C
https://www.compart.com/en/unicode/U+202E
itskingname
2021-01-05 17:06:57 +08:00
@a1gslyghmqnl 那为什么在微信上是正常的呢
ChaiXingXing
2021-01-05 18:04:40 +08:00
微信的字会有隐藏的字符,包括一些代码,如果代码段是从微信复制下来的很可能没法运行,而且也很难找到问题
a1gslyghmqnl
2021-01-05 19:04:38 +08:00
@itskingname 微信支持渲染这种排版字符,所以自然是正常显示的。包括这个帖子页面在 chrome 上也是正常显示的。但是在 Chrome 开发者工具里查看 HTML 源码的时候它就被转义了,就像 3 楼那样。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/741745

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX