php如何解决redis的存取乱码问题

php如何解决redis的存取乱码问题,第1张

php文件的编码格式:

header("charset=utf-8")

在存储前,先把存储的字符串转码。

$string = iconv('UTF-8','GBK',$string)

这时候存储在redis中的中文就是GBK字符集的,读取的时候不是乱码了。

原理是window大部分系统上支持GBK字符集。

将乱码后的中文放入redis-key中,该怎么取值

*

* @throws UnsupportedEncodingException

*/

private static void method1() throws UnsupportedEncodingException {

addKeyToHash()

// 根据key取出

// 转为乱码格式的字符串

String s = "天津"

byte[] n2 = s.getBytes("gb2312")

String gn2 = new String(n2, "utf-8")

// 应该用对应的乱码去取

Set<Tuple>res = jedis.zrangeWithScores("hot_projects_" + gn2, 0, -1)

Iterator<Tuple>it = res.iterator()

while (it.hasNext()) {

Tuple t = it.next()

System.out.println("element:" + t.getElement().toString() + ",score:" + t.getScore())

}

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11552705.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-16
下一篇 2023-05-16

发表评论

登录后才能评论

评论列表(0条)

保存