不明确的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]替换,直接提示就消失了。说明主要就是这些字符引起的。以后如果不想看到这烦人的提示,这么简单的处理就可以了,注释里面这些符号少了应该不影响阅读,稳妥的办法当然还得一一替换。不过现在可以知道,重点是这一区的字符,就好解决得多。当然,不明确的字符应该也会有其他的,不过,本文的办法应该同样能够把其他的也找出来,如果手里面有类似的文件的话。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/24233.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

k-means聚类模型的优缺点

一、k-means聚类模型的优点 1. 简单高效:k-means算法思想简单直观,易于实现。它通过迭代计算样本点与聚类中心之间的距离,并不断调整聚类中心的位置,直至满足终止条件。由于其计算过程相对直接,所以具有较高的执行效率…

控制台输入javac命令输出的结果中的中文乱码解决方式

默认字符编码UTF-8无法解析中文。设置环境变量中 “JAVA_TOOL_OPTIONS” 的值为"UTF-8" 即可。 具体配置步骤: 桌面右键"我的电脑" --> 属性 高级系统设置 环境变量 用户变量中添加 JAVA_TOOL_OPTIONS 然后确定,保存即可。

阿里云一键登录号码认证服务

阿里云文档:号码认证SDK_号码认证服务(PNVS)-阿里云帮助中心 对于后端大概流程 前端App会传一个token过来 后端通过下面方法解析 如果解析可以获得号码,说明号码认证成功,如果无法正确解析则认证失败 /*** actoken来换取电话号码* param token app端用户授权actok…

WDF驱动开发-PNP和电源管理(二)

下面是一种比较典型的 PnP 和电源管理方案,WDF框架在这些情况下调用驱动程序的事件回调函数: 用户插入设备用户拔出设备设备进入低功耗状态设备回到工作状态PnP 管理器重新分发系统资源 这些几乎是所有的和PNP、电源管理相关的场景了,它们分…

达梦8 网络中断对系统的影响

测试环境:三节点实时主从 版本:--03134283938-20221019-172201-20018 测试1 系统没有启动确认监视器 关闭节点3网卡 登录节点1检查主库状态 显示向节点2发送归档成功,但无法收到节点3的消息,节点1挂起 日志报错如下&#xf…

易于上手的requests

Python中的requests库主要用于发送HTTP请求并获取响应结果。在现代网络编程中,HTTP请求是构建客户端与服务器之间通信的基础。Python作为一种高级编程语言,其丰富的库支持使得它在网络数据处理领域尤为突出。其中,requests库以其简洁、易用的…

力扣560. 和为 K 的子数组

Problem: 560. 和为 K 的子数组 文章目录 题目描述思路复杂度Code 题目描述 思路 1.初始化一个哈希表preSum,用于记录前缀和及其出现次数,ans记录和为k的子数组数量、sum_i记录当前前缀和; 2.将前缀和为 0 的情况存入哈希表,表示前缀和为 0 出…

【Python】认识 Python

一、计算机基础概念 1、什么是计算机 很多老一辈的人,管下面这个叫做计算机。然而,它只是 “计算器”,和计算机是有很大区别的。 现在我们所说的计算机,不光能进行算术运算,还能进行逻辑判断、数据存储、网络通信等…

遇到no module named ‘pyLDAvis.sklearn‘的解决办法

在NLP学习中,常常用到LDA主题模型对文本进行分类,可视化经常用到的代码有 import pyLDAvis import pyLDAvis.sklearnpanel pyLDAvis.sklearn.prepare(lda, tf_idf, tf_idf_vectorizer) pyLDAvis.save_html(panel, lda_visualization.html) pyLDAvis.di…

HTML静态网页成品作业(HTML+CSS)—— 节日母亲节介绍网页(5个页面)

🎉不定期分享源码,关注不丢失哦 文章目录 一、作品介绍二、作品演示三、代码目录四、网站代码HTML部分代码 五、源码获取 一、作品介绍 🏷️本套采用HTMLCSS,未使用Javacsript代码,共有5个页面。 二、作品演示 三、代…

骑砍2霸主MOD开发(12)-游戏实例GameEntity

一.GameEntity游戏实例 <1.通用GameEntity,梯子,椅子,攻城云梯,战车等定义为GameEntity,一个GameEntity由若干GameEntityComponets组成,例如攻城云梯的轮子是一个独立Component,支架是一个独立Component, GameEntity GameEntityComponent1 GameEntityComponent2 GameEntit…

前端开发之WebSocket通信

WebSocket WebSocket是一种在单个TCP连接上进行全双工通信&#xff08;双向同时通信&#xff09;的协议&#xff0c;它允许服务器和客户端之间自由地交换数据&#xff0c;无需反复建立连接。其特点包括&#xff1a; 双向通信&#xff1a;实时性强&#xff0c;支持服务器向客户…

移动端前端开发遇到过的Andorid和IOS的差异记录

移动端前端开发遇到过的安卓和苹果的差异记录 1. 引入外部资源&#xff0c;最好用https2. IOS时间戳获取NaN问题3. 金额三位分节显示方式4. .webp图片支持问题 1. 引入外部资源&#xff0c;最好用https ios处于安全性的考虑&#xff0c;不大支持http引入外部资源&#xff0c;所…

【kubernetes】探索k8s集群的配置资源(secret和configma)

目录 一、Secret 1.1Secret 有四种类型 1.2Pod 有 3 种方式来使用 secret 1.3应用场景&#xff1a;凭据 1.4创建 Secret 1.4.1用kubectl create secret命令创建Secret 1.4.2内容用 base64 编码&#xff0c;创建Secret 1.4.2.1Base64编码 1.4.2.2创建YAML文件 1.4.2.3…

《计算机网络》

计算题【33】 题目:假设一个有噪声信道的带宽为3KHz,信噪比为30dB,则该信道的最大数据传输速率是多少? C = W log2(1+S/N)(bit/s)=3000Hz* log2(1+30)= 29.9kbps 题目:一个网络中,设定的IP地址范围是:172.88.32.1至172.88.32.254,试确定其合适的子网掩码。 分析第…

「前端+鸿蒙」鸿蒙应用开发预览模拟器运行

在鸿蒙应用开发中&#xff0c;预览和模拟器运行是开发流程中的重要环节&#xff0c;它们允许开发者在不使用实体设备的情况下测试应用的界面和功能。以下是如何使用华为DevEco Studio进行预览和在模拟器上运行鸿蒙应用的详细步骤&#xff0c;以及相应的示例代码。 快速体验-预览…

277 基于MATLAB GUI火灾检测系统

基于MATLAB GUI火灾检测系统&#xff0c;可以实现图片和视频的火苗检测。火焰识别的三个特征&#xff1a;1个颜色特征&#xff0c;2个几何特征颜色特征&#xff1a;HSV颜色空间下&#xff0c;对三个通道值进行阈值滤波&#xff0c;几何特征1&#xff1a;长宽比&#xff0c;几何…

用 Python 撸一个 Web 服务器-第3章:使用 MVC 构建程序

Todo List 程序介绍 我们将要编写的 Todo List 程序包含四个页面&#xff0c;分别是注册页面、登录页面、首页、编辑页面。以下分别为四个页面的截图。 注册页面&#xff1a; 注册 登录页面&#xff1a; 登录 首页&#xff1a; 首页 编辑页面&#xff1a; 编辑 程序页面非…

程序员搞副业一些会用到的工具

微信号采集(爬虫)技术的选型 那么&#xff0c;我们应该使用什么技术来从庞大的网页内容中自动筛选和提取微信号呢&#xff1f;答案就是&#xff1a;数据采集技术&#xff0c;也就是爬虫技术。 然而&#xff0c;数据采集技术种类繁多&#xff0c;我们具体应该采用哪一个呢&…

【Linux】—— 线程控制的基本介绍

目录 &#xff08;一&#xff09;POSIX线程库 &#xff08;二&#xff09;创建线程 2.1 线程ID及进程地址空间布局 &#xff08;三&#xff09;线程终止 &#xff08;四&#xff09;分离线程 &#xff08;一&#xff09;POSIX线程库 POSIX线程库&#xff08;POSIX Thread…