2016-12-16 8 views
1

私は、Redis with PHPとphpRedisコネクタを使用しています。 アラビア語で単語を保存すると、この単語を取得することができません。エンコードの戻り値です。ここ>のRedis-CLI --rawRedisアラビア語のデコード

例:私はと接続した場合、問題が解決されるのRedisで

アミック:は/ var/www /のコアbitercash $のRedisの-CLI 127.0。 6379> OK 127.0.0.1:6379> XX "\ xd8 \ XAC \ XD9 \ x8a \ xd8 \ XAF" を取得

アミックجيدXXを設定します:0.1の/ var/www /のコア - bitercash $ redis- cli -raw 127.0.0.1:6379> get xx 127.0.0。 1:6379>

はい、それは仕事ですが、phpRedisは機能しません。 返されます: جيØ

値は赤で保存されます。

私はphpRedis libの--rawオプションを使って接続する方法や、phpの "جيØ"というテキストをデコードする方法を知りません。

+1

これは確かにクライアントの問題であり、自分自身をRedisのはとらわれないエンコードされます。必要に応じて、テキストをURLエンコードし、クライアントに戻すときにデコードすることができます。 –

答えて

0

あなたの質問に投稿したときにRedisでキーを追加し、このコードをtest.phpという名前でWebサーバーに保存し、ブラウザでそのページを開くと、文字が正しく表示されますか?

<!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の関与を次のように変更します:$ pdo = new PDO(DSN、USER、PASSWORD、$ options = [PDO :: MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8']); – amic

関連する問題