新聞中心
Redis是一個(gè)開源,高性能的鍵值存儲(chǔ)數(shù)據(jù)庫(kù),它可以用于存儲(chǔ)字符串,散列,列表,集合,有序集合等數(shù)據(jù)結(jié)構(gòu),支持事務(wù)機(jī)制。由于Redis的易用性和高性能,它受到了越來越多的關(guān)注。為了避免亂碼,可以使用Redis的特性來實(shí)現(xiàn)。

一、使用String類型存儲(chǔ)字符串。
String類型能夠存儲(chǔ)任意二進(jìn)制數(shù)據(jù),甚至可以存儲(chǔ)一個(gè)編碼之外的字符串。當(dāng)需要把中文保存到Redis里面時(shí),可以將中文字符先用特定utf-8編碼成字節(jié)數(shù)組再存入,比如:
\u00e4\u00b8\u00ad\u00e6\u0096\u0087
實(shí)際插入數(shù)據(jù)庫(kù)的是utf-8編碼之后的字節(jié)數(shù)組,而不是字符串本身,這樣從Redis里讀取出來的一定是utf-8編碼之后的字節(jié)流,最終再轉(zhuǎn)成字符串,從而避免出現(xiàn)亂碼。具體的代碼實(shí)現(xiàn)如下:
// 將中文字符串utf-8編碼 public byte[] encode (String str) { return str.getBytes(“utf-8”); } // 讀取utf-8編碼之后的字節(jié)數(shù)組,并轉(zhuǎn)換成中文字符串 public String decode(byte[] bs) { return new String(bs, “utf-8”); }
二、使用Hash類型存儲(chǔ)數(shù)據(jù)
hash類型是Redis支持的一種數(shù)據(jù)結(jié)構(gòu),由鍵值對(duì)存儲(chǔ),這樣可以把任意編碼的字符串當(dāng)做鍵,把utf-8編碼的字節(jié)數(shù)組當(dāng)做值,這樣就能保存任意編碼的字符串,從而避免出現(xiàn)亂碼。
// 存入ChineseString,鍵為chinese,值為utf-8編碼的字節(jié)數(shù)組 jedis.hset(“chinese”, “ChineseString”, encode(ChineseString));
// 讀取ChineseString byte[] bs = jedis.hget(“chinese”, “ChineseString”); String ChineseString = decode(bs); System.out.println(ChineseString);
看完這篇文章后,希望讀者能夠有一個(gè)正確的使用Redis來避免亂碼的認(rèn)知,以及能夠?qū)ο嚓P(guān)操作有一定的把握和掌握,如果你想了解更多Redis的使用相關(guān)知識(shí),歡迎訪問我們的相關(guān)網(wǎng)站和社區(qū),我們一定能成為你的得力幫手。
香港服務(wù)器選創(chuàng)新互聯(lián),2H2G首月10元開通。
創(chuàng)新互聯(lián)(www.cdcxhl.com)互聯(lián)網(wǎng)服務(wù)提供商,擁有超過10年的服務(wù)器租用、服務(wù)器托管、云服務(wù)器、虛擬主機(jī)、網(wǎng)站系統(tǒng)開發(fā)經(jīng)驗(yàn)。專業(yè)提供云主機(jī)、虛擬主機(jī)、域名注冊(cè)、VPS主機(jī)、云服務(wù)器、香港云服務(wù)器、免備案服務(wù)器等。
當(dāng)前文章:使用Redis避免亂碼(使用redis亂碼)
文章起源:http://www.dlmjj.cn/article/cdhgeie.html


咨詢
建站咨詢
