我在memcached中存储了一些文本值。这种字符串的一个例子是:
El Salvador (República De El Salvador)
当我尝试检索字符串时,我得到一个空字符串。我怀疑这与UTF-8字符串有关。我如何在memcached中存储外语文本?
答案 0 :(得分:2)
我不是Unicode专家,但这激起了我的好奇心,所以我写了一些代码:
http://static.bwerp.net/~adam/20100420/m.php
在这里似乎工作得相当好。你说你认为这是一个UTF-8问题。如果删除重音字符会发生什么?
对于后代,这是链接文件中的代码:
header('Content-type: text/html; charset=utf-8');
echo '<pre>';
$s = utf8_encode("El Salvador (Rep\xfablica De El Salvao)");
echo '$s = ', $s, '<br>';
var_dump( mb_detect_encoding($s) );
$m = new Memcache;
$m->addServer('localhost', 11211);
var_dump( $m->set('foobarcheeze', $s) );
var_dump( $m->get('foobarcheeze') );
echo 'strlen($s) = ', strlen($s), '<br>';
echo 'mb_strlen($s) = ', mb_strlen($s), '<br>';
echo 'mb_strwidth($s) = ', mb_strwidth($s), '<br>';