php解码编码的字符串

时间:2015-05-12 12:48:38

标签: php utf-8 character-encoding

我必须在db中保存俄语产品描述。因此,我使用下面的代码将该字符串转换为utf 8,

$data = 'Это русский';
$cData = iconv(mb_detect_encoding($data, mb_detect_order(), true), "UTF-8", $data);

工作正常。但我需要恢复数据,我不知道如何再次解码它。我试过下面的一个,但它不起作用,

$des = $object->getDescription("ru");
$enc = mb_detect_encoding($des, "UTF-8,ISO-8859-1");
echo iconv($enc, "UTF-8", $des);

我尝试了一下,但没有工作

utf8_decode ( $data );

任何人都可以告诉我如何解码吗?

更新

我在下面尝试编码,

$data = 'Это русский';
$cData =  htmlentities($data, ENT_COMPAT, 'UTF-8');

它工作正常,但如何解码?

我试过下面的一个,但它不起作用..

$des = $object->getDescription("ru");

 echo $cData = htmlentities($des, ENT_COMPAT, 'UTF-8');

3 个答案:

答案 0 :(得分:2)

编码似乎是Windows-1251。 使用以下代码编码到UFT-8

$html_utf8 = mb_convert_encoding($html, "utf-8", "windows-1251");

使用:

解码回Windows-1251
$html_1251 = mb_convert_encoding($html, "windows-1251", "utf-8");

答案 1 :(得分:0)

PHP具有UTF-8解码功能utf8_decode()

utf8_decode ( $data );

从手册:

  

此函数将假定为UTF-8编码的数据解码为   ISO-8859-1。

答案 2 :(得分:0)

您的原始编码是什么?

在您的解码示例中,您不会转换回原始编码,而是转换为UTF-8。试试这个:

$original_encoding = '...'; //put your original encoding here
$description = $object->getDescription("ru");
echo iconv('UTF-8', $original_encoding, $description);