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

專注于為中小企業(yè)提供成都網(wǎng)站設(shè)計、網(wǎng)站建設(shè)服務(wù),電腦端+手機端+微信端的三站合一,更高效的管理,為中小企業(yè)淮上免費做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動了1000多家企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設(shè)實現(xiàn)規(guī)模擴充和轉(zhuǎn)變。
我們可以讓Redis在保存數(shù)據(jù)時使用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ù)據(jù),我們需要添加一個前綴來實現(xiàn)對字符的轉(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ù)雖然不難,但對于有一定編程基礎(chǔ)的開發(fā)者而言,能正確識別Redis中字符串的編碼和解碼,也是一種值得鼓勵的技術(shù)。
創(chuàng)新互聯(lián)【028-86922220】值得信賴的成都網(wǎng)站建設(shè)公司。多年持續(xù)為眾多企業(yè)提供成都網(wǎng)站建設(shè),成都品牌網(wǎng)站設(shè)計,成都高端網(wǎng)站制作開發(fā),SEO優(yōu)化排名推廣服務(wù),全網(wǎng)營銷讓企業(yè)網(wǎng)站產(chǎn)生價值。
本文名稱:解決終端讀取Redis數(shù)據(jù)出現(xiàn)亂碼的前綴(終端讀redis亂碼前綴)
分享路徑:http://www.5511xx.com/article/cogohgi.html


咨詢
建站咨詢
