2016-12-16 225 views
1

我使用Redis和PHP,使用phpRedis连接器。 当我用阿拉伯语保存单词时,我无法检索到这个单词,它是返回编码值。Redis阿拉伯语言解码

在Redis的,如果我有连接问题解决:> Redis的-CLI --raw

这里举例:

酰胺:在/ var/WWW /核心bitercash $ redis的-CLI 127.0。 0.1:6379>设置XXجيد OK 127.0.0.1:6379>获得XX “\ XD8 \西飞\ xd9 \ x8a \ XD8 \ XAF”

酰胺:在/ var/WWW /核心bitercash $ redis- cli --raw 127.0.0.1:6379> get xx جيد 127.0.0。 1:6379>

是的,它的工作,但对于phpRedis是行不通的。 是退货: ØÙيد

保存在redis中的值。

我不知道如何连接--raw选项为phpRedis lib或haw在php中解码文本“جيؔ。

+1

这肯定是一个客户端问题,Redis的本身是不可知的编码。如果你愿意,你可以对这些文本进行网址编码,并在将它们返回给客户端时进行解码。 –

回答

0

在您的问题中发布的Redis中添加密钥,将此代码保存为test.php在您的网络服务器上并在浏览器中打开该页面,字符显示是否正确?

<!DOCTYPE html> 
<html> 
<head> 
    <meta charset="utf-8"> 
</head> 
<body> 
<?php 
$redis = new Redis(); 
$redis->connect('127.0.0.1', 6379); 
echo $redis->get('xx'); 
?> 
</body> 
</html> 

如果无法工作,包括在页面的开头这段代码:

<?php ini_set('default_charset', 'utf-8'); ?> 
+1

是的,它的工作。我认为我的问题是用PDO从MySQL中检索数据。我将PDO conexion更改为:$ pdo = new PDO(DSN,USER,PASSWORD,$ options = [PDO :: MYSQL_ATTR_INIT_COMMAND =>'SET NAMES utf8']); – amic