imagejpeg() Unicode 字符的问题


imagejpeg() Issue with unicode characters

我使用imagejpeg()将调整大小的图像保存到文件中,文件名可以包含非拉丁字符,问题是它用一些奇怪的字符弄乱了文件名。

知道如何解决这个问题吗?如果不是,如何返回imagejpeg()的内容而不是保存或打印它以便我可以改用fwrite()

附言同样的事情也发生在imagepng()imagegif()身上。

虽然我建议不要在文件名中使用非拉丁字符,但您可以使用输出缓冲来捕获imagejpeg的输出并将其存储在变量中。如果fwrite接受您的文件名,您可以使用它将变量写入文件。

像这样:

ob_start();
imagejpeg($your_image);
$your_image_variable = ob_get_contents();
ob_end_clean();