环境:

java向redis中存数据用于重复判断,结果有一条记录居然去不了重复,用Redis DeskTop Manager 查看发现,有一个 key 中居然是这样的:

20190324157:\xEF\xBB\xBF55103521621:500181463

也就是比正常的数据多了 \xEF\xBB\xBF

然后在java控制台打印日志,居然看不出区别,也就是控制台居然都是正常的  20190324157:55103521621:500181463

度娘得知:\xEF\xBB\xBF  是utf-8编码中特有的 BOM 隐藏字符,那么就想到办法如下:

//            假设s为可能带有BOM前缀 \xEF\xBB\xBF 的字符串
String s = "55103521621";
System.out.println(s);
// 首先把s转成GBK编码,这时会出现多余乱码字符 20190324157:?55103521621:50018146
String s1 = new String(s.getBytes("utf-8"),"GBK");
System.out.println(s1); //锘�55103521621
// 这时再去除多余字符即可,这里是替换所有非数字字符为空串
String s2 = s1.replaceAll("\\D", "");//
System.out.println(s2);//

参考文章如下:

======

Redis \xef \xbb \xbf 这是什么意思?

redis 中存了一个英文单词,但是存进去时加入了这东西:

\xef \xbb \xbf

怎么会是?

参考:

http://baike.baidu.com/subview/126558/5073180.htm#viewPageContent

=====

但是读取的时候第一个元素为‘\xef\xbb\xbf1883’,上网看了一些资料,原来在python的file对象的readline以及readlines程序中,针对一些UTF-8编码的文件,开头会加入BOM来表明编码方式。 
解决方法有很多种: 
1.这篇博客引用codecs模块,来判断前三个字节是否为BOM_UTF8。如果是,则剔除\xef\xbb\xbf字节。 
2.另外还有很多解决方案,可以判断列表中是否有\xef\xbb\xbf字符,如果有,用replace()替换为空的,代码如下:

    1.  
    2.  
    3. f = open("2017-5-17-1.txt","r")
    4. lightSen = []
    5.  
    6. for line in f.readlines():
    7. if '\xef\xbb\xbf' in line:
    8. str1 = line.replace('\xef\xbb\xbf','')#用replace替换掉'\xef\xbb\xbf'
    9. lightSen.append(int(str1.strip()))#strip()去掉\n
    10. else:
    11. lightSen.append(int(line.strip()))
    12.  
    13.  
    14. print(lightSen)
    15.  
    16. f.close
       

Redis中存字段key出现 \xef \xbb \xbf的更多相关文章

  1. 获取redis中所有的key,清空整个 Redis 服务器的数据

    获取 redis 中所有的 key 可用使用 *. redis 127.0.0.1:6379> KEYS * Redis Flushall 命令用于清空整个 Redis 服务器的数据(删除所有数 ...

  2. Redis中删除过期Key的三种策略

    转载自:http://blog.csdn.net/a_bang/article/details/52986935?locationNum=9&fps=1 项目中有个接口要频繁调用查询数据库中的 ...

  3. redis中如何对 key 进行分类

    因为redis中的 hash是不支持设置过期时间的,如果我们要 设置过期时间,还要分类存储,可以用下面折中的方法 其实就是我们把 key 定义的有规律一些,通过在key的字符串内部 分类,上图只是因为 ...

  4. 如何提取Redis中的大KEY

    工作中,经常有些Redis实例使用不恰当,或者对业务预估不准确,或者key没有及时进行处理等等原因,导致某些KEY相当大. 那么大Key会带来哪些问题呢? 如果是集群模式下,无法做到负载均衡,导致请求 ...

  5. 在redis中查询一个KEY的值

    写入某个key: set  MPM_YYC_XTJ_0   "abcde"      [set key value]

  6. Redis中取得所有Key、过期时间配置与获取、Key过期通知。

    string connection = "127.0.0.1:6379,password=xxxxx,connectRetry=5"; [TestMethod] public vo ...

  7. “\xef\xbb\xbf”爬坑记录

    今天早上帮同事写了脚本,大致功能:从文本中读取域名,加密存储成按照自己定义的格式.但是一个简单的代码居然出现了错误.初始的代码如下: # coding:utf-8 import hashlib imp ...

  8. 超大批量删除redis中无用key+配置

    目前线上一个单实例redis中无用的key太多,决定删除一部分. 1.删除指定用户的key,使用redis的pipeline 根据一定条件把需要删除的用户统计出来,放到一个表里面,表为 del_use ...

  9. redis中key的过期键删除策略

    Redis过期键删除策略 Redis key过期的方式有三种: 被动删除:当读/写一个已经过期的key时,会触发惰性删除策略,直接删除掉这个过期key 主动删除:由于惰性删除策略无法保证冷数据被及时删 ...

随机推荐

  1. QT 给工程添加图片

    先打开如图的打开方式 然后我们看到以下的画面,选择下面的 然后我们选择如下:,这里我们要注意我们的图片资源有一定要和QRC资源在同一个文件夹中 之后我们通过在stylesheet里面设置来使用我们添加 ...

  2. Cypress自动化测试系列之二

    本文技术难度★★★,如果前编内容顺利执行,请继续. 如果Selenium尚无法灵活运用的读者,本文可能难度较大. “理论联系实惠,密切联系领导,表扬和自我表扬”——我就是老司机,曾经写文章教各位怎么打 ...

  3. cmd拷贝文件夹时,处理提示

    xcopy 若目标盘上不存在此子目录,而在目标盘的结束符又不以"\"为结束,则将提示: does destination specify a file name or direct ...

  4. LCA-tarjan understand 2

    下面是一个最基础的LCA题目    http://poj.org/problem?id=1330 赤裸裸的 题意 输入cas 后  有cas组数据 输入 n   再输入n-1 条边    之后输入x ...

  5. 【Python网络爬虫三】 爬取网页新闻

    学弟又一个自然语言处理的项目,需要在网上爬一些文章,然后进行分词,刚好牛客这周的是从一个html中找到正文,就实践了一下.写了一个爬门户网站新闻的程序 需求: 从门户网站爬取新闻,将新闻标题,作者,时 ...

  6. [Go] 使用读写锁对map资源进行安全处理

    当需要有一个全局性的map集合资源进行增删改数据时,需要对该map资源增加读写锁,防止并发时出现安全问题 下面的类就是举例 , 属性中的Conns模拟存储一些资源,对这些资源进行并发的增加数据,使用写 ...

  7. jquery password选择器 语法

    jquery password选择器 语法 作用::password 选择器选取类型为 password 的 <input> 元素.大理石平台精度等级 语法:$(":passwo ...

  8. Markdown 标记语言指北

    这是班刊约稿的一篇文章. 全文约6000字, 预计需要 60 分钟读完. Markdown 标记语言指北 TOC 什么是 Markdown? Markdown 可以用来干什么? 第一步? 一些专业一点 ...

  9. Thinkphp3.2.3中的RBAC权限验证

    最近在用TP的RBAC权限控制,在这里记录学习一下.先来看看相关的概念 一.相关概念 访问控制与RBAC模型1.访问控制:        通常的多用户系统都会涉及到访问控制,所谓访问控制,是指通过某种 ...

  10. DVWA--Command Injection

    首先我们查看源代码一下 <?php if( isset( $_POST[ 'Submit' ] ) ) { // Get input $target = $_REQUEST[ 'ip' ]; / ...