2016-12-16 3 views
1

J'utilise Redis avec PHP, avec le connecteur phpRedis. Lorsque je sauvegarde un mot en arabe, je ne peux pas récupérer ce mot, c'est le retour des valeurs de codage.Redis le décodage du langage arabe

En Redis le problème est résolu si je me connecte avec:> Redis-cli --raw

Exemple ici:

AMIC:/var/www/core-bitercash Redis-cli 127,0 $. 0,1: 6379> set xx جيد OK 127.0.0.1:6379> get xx "\ xd8 \ xac \ XD9 \ X8a \ xd8 \ XAF"

AMIC:/var/www/core-bitercash $ redis- cli --raw 127.0.0.1:6379> get xx جيد 127.0.0. 1: 6379>

Oui c'est du travail, mais pour phpRedis ne fonctionne pas. Renvoie: جÙØØ

la valeur enregistrée en rouge.

Je ne sais pas comment me connecter avec l'option --raw de phpRedis lib ou de déchiffrer le texte "جÙØØ" en php.

+1

c'est certainement un problème client, Redis lui-même est l'encodage agnostique. Vous pouvez, si vous le souhaitez, encoder les textes et les décoder en les renvoyant au client. –

Répondre

0

Ajoutez la clé dans Redis comme vous l'avez posté dans votre question, sauvegardez ce code comme test.php sur votre serveur web et ouvrez la page dans votre navigateur, les caractères apparaissent-ils correctement?

<!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> 

Si cela ne fonctionne pas, inclure ce code au début de la page:

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

oui, ça marche. Je pense que mon problème était lors de la récupération des données de MySQL avec PDO. Je change la conexion de PDO à: $ pdo = nouveau PDO (DSN, USER, MOT DE PASSE, $ options = [PDO :: MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8']); – amic