Redis中存字段key出现 \xef \xbb \xbf
环境:
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()替换为空的,代码如下:
- f = open("2017-5-17-1.txt","r")
- lightSen = []
- for line in f.readlines():
- if '\xef\xbb\xbf' in line:
- str1 = line.replace('\xef\xbb\xbf','')#用replace替换掉'\xef\xbb\xbf'
- lightSen.append(int(str1.strip()))#strip()去掉\n
- else:
- lightSen.append(int(line.strip()))
- print(lightSen)
- f.close
Redis中存字段key出现 \xef \xbb \xbf的更多相关文章
- 获取redis中所有的key,清空整个 Redis 服务器的数据
获取 redis 中所有的 key 可用使用 *. redis 127.0.0.1:6379> KEYS * Redis Flushall 命令用于清空整个 Redis 服务器的数据(删除所有数 ...
- Redis中删除过期Key的三种策略
转载自:http://blog.csdn.net/a_bang/article/details/52986935?locationNum=9&fps=1 项目中有个接口要频繁调用查询数据库中的 ...
- redis中如何对 key 进行分类
因为redis中的 hash是不支持设置过期时间的,如果我们要 设置过期时间,还要分类存储,可以用下面折中的方法 其实就是我们把 key 定义的有规律一些,通过在key的字符串内部 分类,上图只是因为 ...
- 如何提取Redis中的大KEY
工作中,经常有些Redis实例使用不恰当,或者对业务预估不准确,或者key没有及时进行处理等等原因,导致某些KEY相当大. 那么大Key会带来哪些问题呢? 如果是集群模式下,无法做到负载均衡,导致请求 ...
- 在redis中查询一个KEY的值
写入某个key: set MPM_YYC_XTJ_0 "abcde" [set key value]
- Redis中取得所有Key、过期时间配置与获取、Key过期通知。
string connection = "127.0.0.1:6379,password=xxxxx,connectRetry=5"; [TestMethod] public vo ...
- “\xef\xbb\xbf”爬坑记录
今天早上帮同事写了脚本,大致功能:从文本中读取域名,加密存储成按照自己定义的格式.但是一个简单的代码居然出现了错误.初始的代码如下: # coding:utf-8 import hashlib imp ...
- 超大批量删除redis中无用key+配置
目前线上一个单实例redis中无用的key太多,决定删除一部分. 1.删除指定用户的key,使用redis的pipeline 根据一定条件把需要删除的用户统计出来,放到一个表里面,表为 del_use ...
- redis中key的过期键删除策略
Redis过期键删除策略 Redis key过期的方式有三种: 被动删除:当读/写一个已经过期的key时,会触发惰性删除策略,直接删除掉这个过期key 主动删除:由于惰性删除策略无法保证冷数据被及时删 ...
随机推荐
- python、mysql三-2:数据类型
一 介绍 存储引擎决定了表的类型,而表内存放的数据也要有不同的类型,每种数据类型都有自己的宽度,但宽度是可选的 详细参考: http://www.runoob.com/mysql/mysql-data ...
- PAT Basic 1003 我要通过! (20 分)
“答案正确”是自动判题系统给出的最令人欢喜的回复.本题属于 PAT 的“答案正确”大派送 —— 只要读入的字符串满足下列条件,系统就输出“答案正确”,否则输出“答案错误”. 得到“答案正确”的条件是: ...
- Little Tricks
一直都计划好好学算法,一直都计划好好看书刷题,却几乎从来没更新过(算法)博客,几乎从来没有花苦功夫学过. 糜烂的四月,最后一天,更新一些自己看到的小 trick 吧,以后一定要多多更新算法博客. 1. ...
- fastai 核心部件
1.ImageDataBunch 对数据封装的很好,包括预处理都在这里面完成了 2.models 现有模型及权重 2-1 create_body 可以用来获取现有模型的主体结构 2-2 create ...
- cudaDeviceProp结构体
struct cudaDeviceProp {char name[256]; //器件的名字size_t totalGlobalMem; //Global Memory 的byt ...
- JS 转化为String的三种方法
// 1. toString() var num = 8; var numString = num.toString(); console.log(numString); var result = t ...
- C#中无边框窗体移动或拖控件移动窗体
[DllImport("user32.dll")] public static extern bool ReleaseCapture(); [DllImport("use ...
- Spring前台填充数据
举例: <div>${userinfo.name}</div> 显示规则 1.先判断对象有没有存在,对象存在的时候,才会查找对象里的字段.这个时候字段必须正确.2.如果对象 ...
- Codeforces 622F The Sum of the k-th Powers ( 自然数幂和、拉格朗日插值法 )
题目链接 题意 : 就是让你求个自然数幂和.最高次可达 1e6 .求和上限是 1e9 分析 : 题目给出了最高次 k = 1.2.3 时候的自然数幂和求和公式 可以发现求和公式的最高次都是 k+1 ...
- Android_(控件)Chronometer计时器
Android Chronometer(计时器) 继承TextView,显示的是某个时间点开始以及之后的时间增加 运行截图 程序结构 package com.example.administrator ...