最近线上出现一个很有意思的问题,同一个账号登录系统,同样的条件,别人都可以查询到数据,当事人电脑就是查不到,起初怀疑过特殊字符但是在后台日志查看时(tail/grep)没发现有问题。

最终发现还是因为粘贴复制操作导致的不可见字符,因为宽度为0,所以通过tail命令或者grep命令不展示并且很难发现,通过cat -A/-v或者less 可以看到特殊字符:

cat -A/-v 看到特殊字符:M-bM-^@M-^K

less 看到特殊字符:<U+200B>

该不可见字符是unicode字符的0宽度字符,复制黏贴时候发现不了,因为宽度为0所以并不容易发现,java中去除该字符的方式为:

控制台看不见,所以写到文件里,通过命令行查看特殊字符可以看到(windows上git bash cat -v)

        String zws = "zeroWidthSpace\u200B";FileWriter fw = new FileWriter("zws");fw.write(zws);fw.close();zws = zws.replaceAll("[\\p{Cf}]", "");  // 移除特殊字符FileWriter fw1 = new FileWriter("nozws");fw1.write(zws);fw1.close();

参考:

unicode-regex

unicode-symbol

stackoverflow

关于0宽度unicode字符 “zero-width-space“ “M-bM-^@M-^K“ <U+200B>相关推荐

  1. Python处理unicode字符

    文章目录 编码与查找 分类 文字方向 编码与查找 unicodedata中定义了所有Unicode字符的字符属性,主要包含两个功能,其一是根据名字查找字符:其二是给定字符查找其对应的信息. 前者有一个 ...

  2. 0宽字符加密_艺术鬼才!Unicode 字符还能这么玩?

    上周的时候,朋友圈的直升飞机不知道为什么就火了,很多朋友开着各种花式飞机带着起飞. 还没来得及了解咋回事来着,这个直升飞机就 到的微博热搜. 后面越来越多人开来他们的直升飞机,盘旋在朋友圈上方.于是很 ...

  3. 字符ascii码值转换_没想到 Unicode 字符还能这样玩?

    脚本之家 你与百万开发者在一起 来源 | 程序通事(ID:US_stocks) 如若转载请联系原公众号 上周的时候,朋友圈的直升飞机不知道为什么就火了,很多朋友开着各种花式飞机带着起飞. 图片来自网络 ...

  4. unicode字符编码表下载_详解字符编码(上)

    作者 | 张奎 字符编码相关问题是软件开发过程中的常见问题,本文对字符编码的概念进行了介绍,并针对字符编码的常见问题给出了解释. 字符编码概念 下面以一个例子来引入对字符编码的介绍,汉字"柯 ...

  5. Unicode字符编码规范

    http://www.aoxiang.org 2006-4-2 10:48:02 Unicode是一种字符编码规范 . 先从ASCII说起.ASCII是用来表示英文字符的一种编码规范,每个ASCII字 ...

  6. 转:Unicode字符集和多字节字符集关系

    原文地址: http://my.oschina.net/alphajay/blog/5691 unicode.ucs-2.ucs-4.utf-16.utf-32.utf-8 http://stallm ...

  7. Unicode字符集和多字节字符集关系(一)

    另外可参考: 谈谈Unicode编码,简要解释UCS.UTF.BMP.BOM等名词 http://blog.csdn.net/smonster/archive/2008/10/31/3194587.a ...

  8. Unicode字符类

    Unicode 通用类别: http://msdn.microsoft.com/zh-cn/library/20bw873z(VS.80).aspx 类别 说明 Lu 字母,大写 Ll 字母,小写 L ...

  9. 踩到了不可见字符\u200B的坑(0长度的字符)

    接收前端输入的时候,由于前端是富文本,去掉空格后,发现还是有字符串,但是看到的却是"",长度是1,但是人眼看到的是没有字符(0长度的),一直找不到原因.后来网上查找资料发现了.原来 ...

最新文章

  1. TortoiseGit 连接oschina不用每次输入username和password的方法
  2. mysql 源码 库函数_【MySQL】MHA源代码之主库选取(二)
  3. [YTU]_2499( 处理成绩(c++类训练))
  4. 【AutoML】当前有哪些可用的AutoML平台?
  5. Node 应用篇!推荐 10 个好用的 Node 的开源项目 YYDS
  6. 操作系统安装必备基础知识----浅谈电脑系统里的那些UEFI, BIOS, MBR, GPT。
  7. 超全PHP学习资源整理:入门到进阶系列
  8. 过滤日志中不相关的堆栈跟踪行
  9. 【LeetCode】24. Swap Nodes in Pairs
  10. 20200213:去除重复字母(leetcode316)
  11. 走进 JDK 之谈谈字符串拼接
  12. WinForm(C#):登录页面实现+SQL Server数据库连接方式
  13. 3D打印gcode命令大全及解析
  14. 【SAS BASE】SAS格式、缺失值表示、命名规则及路径
  15. Linux内核源码的组织结构
  16. E. Fruit Slicer--计算几何+两圆公切线
  17. 基于Android的废旧物品回收APP
  18. doc与docx批量互转宏代码
  19. open falcon mysql参数_open-falcon 监控MySQL及自定义监控指标
  20. fuelux tree简单配置使用(动态数据+字体图标)

热门文章

  1. 医院有线电视数字前端改造系统解决方案
  2. JavaSwing 界面开发-登录界面
  3. stm32f407探索者开发板(十)——时钟系统精讲
  4. go json返回时间字符串处理time.Time类型
  5. 爬山算法c语言,《爬山算法》
  6. Nucleofector细胞转染技术专题 | 写在细胞转染实验之前
  7. 在Excel中调用Python脚本,实现数据自动化处理
  8. 高级程序员如何面对职场压力?(3)--明确目标赢在职场
  9. vue 手机号(334分隔)
  10. 学习多线程 - iOS