Redis是一种开源的内存数据库,广泛应用于各种场景,它能够实现快速的读写几乎所有数据类型,如字符串、列表、哈希、集合等。但是,有时你会在把数据存到Redis时出现乱码的现象,那么乱码是怎么一回事,又有什么办法可以解决这个问题呢?接下来就来深入探究一下。
创新互联是网站建设技术企业,为成都企业提供专业的成都网站建设、成都网站设计,网站设计,网站制作,网站改版等技术服务。拥有十多年丰富建站经验和众多成功案例,为您定制适合企业的网站。十多年品质,值得信赖!
乱码出现的原因大体可以分为两类:第一,编码不一致;第二,存储格式不一致。
关于编码不一致,这是由于Redis内部使用utf-8编码进行存储,而在客户端和服务器之间数据传输时,采用的编码格式可能不一致;例如,我们在java中采用ISO-8859-1编码进行数据传输,因此服务器端的程序收到的乱码就会出现。同理,其他数据传输编码不匹配也可能出现乱码。
关于存储格式不一致,一般是指存储数据的格式不统一。例如,某个字符串是采用utf-8格式存储的,而另一个字符串是utf-16格式存储的,在Redis中放在一张表中时,由于格式不一致,就会出现乱码。
那么,如何解决Redis现象出现乱码问题呢?
在传输数据前,一定要先查看客户端程序和服务器端程序采用的编码是否一致,如果不一致,则要及时将客户端程序和服务端程序的编码统一起来;例如,java中有一个String类型的 API 叫对 getBytes(”utf-8”),可以用于指定进行转码。
如果存储的格式不一样,可以在存入Redis之前,将其转成特定的格式。通常来说,特征格式一般设为utf-8,这样就可以避免数据出现乱码现象了:
import java.nio.charset.Charset;
//获取某字符串的utf-8字节数组
String str = "test";
byte[] b = str.getBytes(Charset.forName("utf-8"));
//存储字节数组到Redis
//Java Redis客户端的API可以使用set(byte[] key, byte[] value)
jedis.set(b,b);
在把数据存到Redis时,如果出现乱码问题,可以考虑以上两种情况。一方面,在传输数据时要确保客户端和服务器端的数据编码是一致的;另一方面,在存储数据前,将数据格式转换为utils-8格式,这样就可以有效地避免数据出现乱码。
香港服务器选创新互联,2H2G首月10元开通。
创新互联(www.cdcxhl.com)互联网服务提供商,拥有超过10年的服务器租用、服务器托管、云服务器、虚拟主机、网站系统开发经验。专业提供云主机、虚拟主机、域名注册、VPS主机、云服务器、香港云服务器、免备案服务器等。
网页题目:深入探究数据存到Redis出现的乱码问题(数据存到redis乱码)
转载来于:http://www.mswzjz.cn/qtweb/news10/291210.html
攀枝花网站建设、攀枝花网站运维推广公司-贝锐智能,是专注品牌与效果的网络营销公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 贝锐智能