• 记录一次IDEA非法字符‘\ufeff‘报错


    在这里插入图片描述

    ✅作者简介:大家好,我是Leo,热爱Java后端开发者,一个想要与大家共同进步的男人😉😉
    🍎个人主页:Leo的博客
    💞当前专栏: 报错以及Bug
    ✨特色专栏: MySQL学习
    🥭本文内容:记录一次IDEA非法字符’\ufeff’报错
    🖥️个人小站 :个人博客,欢迎大家访问
    📚个人知识库: 知识库,欢迎大家访问

    UTF8 与 UTF8-BOM,大端与小端等编码到底有何不同

    1. 问题发现

    最近在运行一个开源项目的时候,后端SpringBoot工程运行时,报了一个错,截图如下

    image-20230908135357992

    BOM

    出于好奇,我们查一下这个编码\\ufeff是个什么东东,查询得知,这是一个标识字节存储顺序的编码。

    这个涉及到一个名词:BOM

    BOM:Byte Order Mark, 中文名译作“字节顺序标记”。我们知道一个UNICODE编码中一个汉字大多数占用2个字节,那个这两个字节哪个存储在存储地址高位,哪个存储在低位呢?

    Unicode编码中,FEFF表明字节流是Big-Endian(大端序,内存低地址存放高位数据),FFFE则表明字节流是Little- Endian(小端序,内存的低地址存放低位数据)。

    (可以巧妙区分为:内存低地址存的是低位就是小端序,内存低地址存的是高位就是大端序)

    如“0x11223344”,这个变量的高字节是”0x11“,最低字节是为”0x44“,大端存储时为:

    内存地址数据
    0x00100x11低内存地址,高位数据
    0x00110x22
    0x00120x33
    0x00130x44高内存地址

    而小端时数据的顺序则是相反的:

    内存地址数据
    0x00100x44低内存地址,低位数据
    0x00110x33
    0x00120x22
    0x00130x11高内存地址

    2. 思路

    解决的思路是将文件编码格式由其他编码格式转为 UTF-8格式。

    3. 解决方式

    3.1 方式一

    选择一个其他编码,如GBK。(我选的是GBK)。如下图

    image.png

    第二步:重复步骤一,再将编码选择回来,即第二次选择UTF-8编码。

    第三步:嗯,没有第三步,这时候问题应该已经解决了。

    3.2 方式二

    使用编辑器软件/IDE(windows记事本程序除外)将文件内容复制一份重新保存,并删除旧文件。

  • 相关阅读:
    ssm+vue基本微信小程序的今日菜谱系统
    再看tomcat的体会
    【人工智能入门预备知识】
    基于Java+Swing实现俄罗斯方块游戏
    第二十届北京消防展即将开启,汉威科技即将精彩亮相
    UE4基础必学系列:数据驱动
    【HTML】制作一个简单的动态SVG图形
    【常用排序算法】
    elasticsearch基础篇
    地理数据常用处理
  • 原文地址:https://blog.csdn.net/qq_58608526/article/details/132758869