如何从 mb_convert_encoding($file, 'UTF-8', 'Windows-1251') 转换回来?

How to convert from mb_convert_encoding($file, 'UTF-8', 'Windows-1251') back?

提问人:Roman 提问时间:9/16/2018 最后编辑:Roman 更新时间:9/16/2018 访问量:893

问:

在php中,我使用

mb_convert_encoding($file, 'UTF-8', 'Windows-1251') 

我需要将其转换回来,因为输出不是人类可读的。当前输出如下所示

П„ПѓО№ОЅП„ПѓО№О»О±МЃ_3.jpg

当我尝试时

mb_convert_encoding($file, 'ASCII'),

这是行不通的。

编辑:

我使用此代码来比较字符串:变音符号存在这样的问题:hundezubehör-für-sommer.jpg。这就是我使用以下代码的原因。

$image_files = scandir($dir);
foreach ($image_files as &$file) {
    $file = mb_convert_encoding($file, 'UTF-8', 'Windows-1251');
}
// ...
var_dump(in_array($file, $image_files)); 

它工作正常,但代码看起来像这样 П“ПѓОNoОЅП”ПѓОNoО»О±МЃ_3.jpg。我想将其转换回人类可读的格式。

php 字符串 mb-convert-encoding

评论

0赞 Michel 9/16/2018
原始文件名是什么?转换回来时我得到这个:τσιντσιλά_3
0赞 Roman 9/16/2018
@Michel它是一个图像的名称:hundezubehör-für-sommer.jpg
0赞 Michel 9/16/2018
不知道你做了什么,但是当我把我转换后的字符串放在谷歌翻译中时,它检测到希腊语并返回.τσιντσιλάchinchilla
1赞 tkausl 9/16/2018
要转换回来,您只需交换和: php.net/manual/en/function.mb-convert-encoding.phpfrom_encodingto_encoding
0赞 Roman 9/16/2018
我只是发现我在代码的另一部分有错误。它现在可以正常工作。谢谢

答: 暂无答案