新聞中心
隨著 Redis 作為緩存系統(tǒng),數(shù)據(jù)庫(kù)以及消息隊(duì)列越來(lái)越受歡迎,許多開發(fā)者開始使用它。在開發(fā)過(guò)程中,很容易發(fā)現(xiàn)終端查看數(shù)據(jù)時(shí)會(huì)出現(xiàn)亂碼,這是因?yàn)镽edis中的字符串和中文字符之間的編碼不同造成的。

專注于為中小企業(yè)提供成都網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè)服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)淮上免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動(dòng)了1000多家企業(yè)的穩(wěn)健成長(zhǎng),幫助中小企業(yè)通過(guò)網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。
我們可以讓Redis在保存數(shù)據(jù)時(shí)使用utf-8編碼:
SU@> redis-cli
127.0.0.1:6379> set KEY1 “你好”
OK
127.0.0.1:6379> get key1
“\\u4f60\\u597d”
可以看到,數(shù)據(jù)被編碼成 \uXXXX 的形式,這就是utf-8的編碼形式,并不是中文字符本身。這時(shí),如果我們想正確的在終端上查看數(shù)據(jù),我們需要添加一個(gè)前綴來(lái)實(shí)現(xiàn)對(duì)字符的轉(zhuǎn)碼。
我們可以使用Python的unicodedata將該字符串形式的Unicode轉(zhuǎn)換為中文:
# -*- coding: UTF-8 -*-
import unicodedata
get_key = "你好"
str_key = u"\\u4f60\\u597d"
# 把字符串形式的Unicode轉(zhuǎn)換為中文
encode_key = unicodedata.normalize('NFKD', str_key).encode('ascii','ignore')
print encode_key
# 輸出 你好
同樣,我們也可以使用Python的codecs模塊將\uXXXX形式的編碼轉(zhuǎn)換為中文:
# -*- coding: UTF-8 -*-
import codecs
get_key = "你好"
str_key = u"\\u4f60\\u597d"
# 把字符串形式的Unicode轉(zhuǎn)換為中文
encode_key = codecs.decode(str_key, 'unicode_escape')
print encode_key
# 輸出你好
上面的代碼已經(jīng)可以正確的將Redis中亂碼的字符串轉(zhuǎn)換為可以顯示的中文,從而解決終端讀取Redis數(shù)據(jù)出現(xiàn)亂碼的問題。這一技術(shù)雖然不難,但對(duì)于有一定編程基礎(chǔ)的開發(fā)者而言,能正確識(shí)別Redis中字符串的編碼和解碼,也是一種值得鼓勵(lì)的技術(shù)。
創(chuàng)新互聯(lián)【028-86922220】值得信賴的成都網(wǎng)站建設(shè)公司。多年持續(xù)為眾多企業(yè)提供成都網(wǎng)站建設(shè),成都品牌網(wǎng)站設(shè)計(jì),成都高端網(wǎng)站制作開發(fā),SEO優(yōu)化排名推廣服務(wù),全網(wǎng)營(yíng)銷讓企業(yè)網(wǎng)站產(chǎn)生價(jià)值。
新聞標(biāo)題:解決終端讀取Redis數(shù)據(jù)出現(xiàn)亂碼的前綴(終端讀redis亂碼前綴)
標(biāo)題來(lái)源:http://m.fisionsoft.com.cn/article/cogohgi.html


咨詢
建站咨詢
