关于utf 8:php解码编码的字符串

php decode encoded string

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

1
2
$data = 'D-??D? ?€??????DoD?D1';
$cData = iconv(mb_detect_encoding($data, mb_detect_order(), true),"UTF-8", $data);

工作正常。但是我需要取回这些数据,而且我不知道如何再次对其进行解码。我尝试了以下方法之一,但它不起作用,

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

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

1
utf8_decode ( $data );

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

更新:

我尝试过以下一种进行编码,

1
2
$data = 'D-??D? ?€??????DoD?D1';
$cData =  htmlentities($data, ENT_COMPAT, 'UTF-8');

一切正常,但是如何解码呢?

我尝试了以下一项,但是没有用。。

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

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

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

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

使用以下命令解码回Windows-1251:

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


您的原始编码是什么?

在您的解码示例中,您并没有转换回原始编码,而是再次转换为UTF-8。试试这个:

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


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

1
utf8_decode ( $data );

根据手册:

This function decodes data, assumed to be UTF-8 encoded, to
ISO-8859-1.