Redis中文乱码问题的解决
今天測(cè)試一個(gè)小功能,用redis做了個(gè)緩存,然后啟動(dòng)redis客戶端進(jìn)行查詢,發(fā)現(xiàn)得不到想要的中文結(jié)果。網(wǎng)上查找相關(guān)的解決方案,卻沒有一個(gè)能完整解決問題的,最后自己一步一個(gè)腳印解決了。
1. 問題的產(chǎn)生
(1)將接口返回?cái)?shù)據(jù)寫入redis,設(shè)置key為“data”
(2)找到redis安裝目錄中的redis-server.exe,雙擊啟動(dòng)
(3)在redis-server.exe這個(gè)文件的這一層地址欄,輸入cmd,打開控制臺(tái),然后輸入redis-cli并回車,接著PING一下連通性,可以看到客戶端是沒有問題的
(4)根據(jù)緩存的key,輸入查詢語句get data,查詢一下緩存數(shù)據(jù)。可以看到,能查到數(shù)據(jù),但是沒有想要的中文出現(xiàn)。
2. 問題的解決
很明顯,前面出現(xiàn)的問題,并不是中文亂碼問題(因?yàn)檫B中文的痕跡都沒有看到),而是數(shù)據(jù)的進(jìn)制問題。
- redis數(shù)據(jù)進(jìn)制問題的解決
要解決數(shù)據(jù)進(jìn)制問題,只需要在前面的(3)中,將redis-cli改為redis-cli --raw輸入進(jìn)去即可,這也是很多網(wǎng)上的解決方案,我們可以看下這么解決的結(jié)果。
好,解決了一個(gè)數(shù)據(jù)進(jìn)制問題,真正出現(xiàn)了我們所說的中文亂碼問題。這個(gè)問題實(shí)際上不屬于Redis的問題,而是編碼問題。這也是為什么搜Redis中文亂碼問題,總得不到解決方案的原因。
-
中文亂碼問題解決
這個(gè)問題是因?yàn)閷慾ava文件時(shí)用的是UTF-8的編碼格式,而Windows控制臺(tái)對(duì)于中文,是GBK的編碼格式,兩者不一致導(dǎo)致。查看java文件編碼格式
右鍵Windows控制臺(tái)—>屬性,查看編碼格式
亂碼問題,只要保持兩者編碼格式一致,該問題便可迎刃而解。還是從前面的(3)入手,cmd打開控制臺(tái)后,先輸入chcp 65001,修改控制臺(tái)的編碼格式為UTF-8,然后再輸入redis-cli --raw,后面正常查詢,就能得到想要的中文結(jié)果了。
修改編碼格式
輸入redis-cli --raw,并做后面的查詢
總結(jié):Redis中文亂碼問題的解決,(1)先通過chcp 65001命令修改控制臺(tái)的編碼格式(2)再通過redis-cli --raw命令解決數(shù)據(jù)進(jìn)制問題,最后再做查詢就能得到正常的結(jié)果。
總結(jié)
以上是生活随笔為你收集整理的Redis中文乱码问题的解决的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 这五种人工智能技术可以识别图片
- 下一篇: DB2的数据库备份与恢复