php 解码编码字符串

php decode encoded string

我必须在数据库中保存俄语产品描述。因此,为此我使用以下代码将该字符串转换为 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');

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

utf8_decode ( $data );

来自手册:

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

你的原始编码是什么?

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

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

编码似乎是 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");