不明确的unicode字符

不明确的unicode字符

起因:一个Demo源码,也不知道是用什么编辑器编的,中文注释非常全面。就打算原来的基础上改改就用,特别是里面大量接口、类的定义,真没必要重写。但是在VS Code里面打开,出现“本文档包含许多不明确的unicode字符 禁用不明确的突出显示”的提示。这个提示的意思是不明确的字符太多,已经禁用了不明确的突出显示的功能。的确,到处都突出显示的话,也就体现不出突出了。程序能正确运行,问题出现在注释中,关掉这个提示也很容易,但问题是不明确的字符是哪些呢,为什么要突出显示呢?
分析:网上查这个提示的含义,说得也很清楚,就是有的unicode字符,跟ascii码很像,用来写代码的话当然是不正确的,并且肉眼难以看出来,所以平常就会突出显示,以防用错字符。虽然实际情况是这些字符只在注释中出现,不会影响代码运行,但仍然很好奇,究竟有哪些不明确的字符。但这个问题上网查了半天也没有找到答案。不过,因为手上就有一个包含很多不明确字符的文件,应该可以筛选出来。
解决办法:比较笨,但也不算麻烦。就是把明确的去掉,不明确的就在剩余的字符中,应该不会太多。首先,ascii和汉字应该是明确的,用正则表达式查找替换掉。[\u0000-\u00ff\u3400-\u4DBF\u4E00-\u9FFF\uF900-\uFAFF],剩下的果然是一些符号,其中好些看上去确实像ascii字符,但显然不可能是,因为已经都替换掉了。但由于剩余的不明确字符数量还是很多,仍然没有什么突出显示,只有一个是:u+3000,再来,这次用(.)(?=.*\1)来去重,结果就只剩下:

 《》-℉“”–…~℃;、():。,

其中好几个明显与ascii不同,但有几个就得看是用什么字体显示的了。把其中的《》℉℃、。这几个明显的汉字字符删掉,打开原文件再来一次正则表达式替换,OK!这个烦人的提示就不见了。
这几个不明确的字符unicode分别是: 3000、2013、 201C、 201D、 2026、 FF08、 FF09、FF0C、FF0D、 FF1A、FF1B、 FF5E。可以看到,其中:FF00——FFFF,其实就是双字节码里面高字节为全1的,可以理解为简单的ASCII扩展,在UNICODE中属于“半型及全型形式 (Halfwidth and Fullwidth Form) ”这一区域,再次打开原文件,用[\xff00-\xffff]替换,直接提示就消失了。说明主要就是这些字符引起的。以后如果不想看到这烦人的提示,这么简单的处理就可以了,注释里面这些符号少了应该不影响阅读,稳妥的办法当然还得一一替换。不过现在可以知道,重点是这一区的字符,就好解决得多。当然,不明确的字符应该也会有其他的,不过,本文的办法应该同样能够把其他的也找出来,如果手里面有类似的文件的话。

相关推荐

  1. 明确unicode字符

    2024-06-08 19:42:05       26 阅读
  2. 如何获取unicode字符串LPCWSTR?

    2024-06-08 19:42:05       55 阅读
  3. 使用流读取UNICODE-16字符串

    2024-06-08 19:42:05       63 阅读
  4. python中json.dumps将中文变成unicode字符解决办法

    2024-06-08 19:42:05       30 阅读
  5. QT 报错C2872: “byte“: 明确符号

    2024-06-08 19:42:05       23 阅读
  6. (day17)其他分组明确

    2024-06-08 19:42:05       25 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-06-08 19:42:05       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-06-08 19:42:05       106 阅读
  3. 在Django里面运行非项目文件

    2024-06-08 19:42:05       87 阅读
  4. Python语言-面向对象

    2024-06-08 19:42:05       96 阅读

热门阅读

  1. iptables常用命令总结

    2024-06-08 19:42:05       28 阅读
  2. 启山智软助力企业数字化转型

    2024-06-08 19:42:05       26 阅读
  3. Debezium日常分享系列之:Debezium 2.6.2.Final发布

    2024-06-08 19:42:05       30 阅读
  4. WebSocket首次使用踩坑记录

    2024-06-08 19:42:05       30 阅读
  5. Hive面试问题

    2024-06-08 19:42:05       28 阅读
  6. VRRP简介

    2024-06-08 19:42:05       30 阅读
  7. 2024.6.7力扣刷题记录-链表篇学习记录

    2024-06-08 19:42:05       29 阅读