最近一直在做一个python3+tkinter的GUI项目,有一个功能需求是通过获取用户粘贴板上的文件路径然后读取相关文件内容,在中间调试的过程中发现每次拿到的路径前面都有一个\u202a
,在这里做个记录。
\u202a
是一个非常神奇的字符,只会出现在windows操作系统中。而且在我们常规的查询中是无法发现,如果使用手敲将其完整复现出来的话就会发现并不会出现这种情况。
那么\u202a
是什么呢
他是一个UNICODE的字符,代表着顺序。下面列举一下常见的Unicode空值字符
名称 | 方向 | Unicode | 模式 |
---|---|---|---|
left-to-right mark | 左->右 | u+200e | 隐性 |
right-to-left mark | 右->左 | u+200f | 隐性 |
left-to-right embedding | 左->右 | u+200a | 显性 |
right-to-left embedding | 右->左 | u+200b | 显性 |
left-to-right override | 左->右 | u+200d | 显性 |
right-to-left override | 右->左 | u+200e | 显性 |
left-to-right isolate | 左->右 | u+2066 | 显性 |
right-to-left isolate | 右->左 | u+2067 | 显性 |
通常的字符复制都不会出现,一般都是因为从文件属性框安全栏里面复制了文件的路径出现。
现在我收集到的资料只有通过strip函数完成他的去除了
path = path.strip("\u202a")
注意:这里的替换字符我使用了\u202a
而不是\\u202a
我在论坛上面也查到使用‘\’ 对于我并没有效果,因此可以替换尝试。