3

我正在使用 exif_read_data 函数从上传的图像中获取“评论”信息。我想将此信息插入到相应的图像“alt”标签中。插入的值如下所示:T�r�v�e���

我尝试了几种编码变体,但我无法获得正确的字符串。

PHP:

$exif = exif_read_data($dir.$image , 0 ,true);
$rel  = $exif["IFD0"]["Comments"];

HTML:

<img alt='$rel' src='test.jpg' />

输出:像这样的东西......

<img alt='T�r�a�v�e�l��� ' src='test.jpg' />

html 页面的实际编码是 UTF-8

<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
4

3 回答 3

1

我不知道是否会解决您的问题(如果可以,请在此处告诉我)。但是在php.net上有一条注释,带有 php.ini 配置来设置 exif 编码:

<?php
ini_set('exif.encode_unicode', 'UTF-8');
?>
于 2013-11-18T13:27:34.237 回答
0

这对我有用:显然,如果您在 Windows 中设置 exif 注释/描述字段,则编码将自动设置为 ASCII(您可以使用 detect_encoding 进行检查,如注释中所建议的那样)。由于 ASCII 是 utf8 的子集,您可以使用:

$rel  = utf8_encode($exif["IFD0"]["Comments"]);
于 2015-09-14T16:13:37.927 回答
-1

解决方案是:$exif = $exif['WINXP']['Comments'];

于 2015-08-27T06:49:23.960 回答