【发布时间】:2021-03-29 22:08:58
【问题描述】:
我为我的网站使用网络服务器。它有一个包含所有数据的MySql 数据库,Charset 设置为UTF-8,所以数据库端的一切都是正确的,而且在网络服务器上,我有一些图像,其名称分别为MySQL 内容.
例如MySql 中的一个字段是Caffè,而我在另一个文件夹中还有一个名为Caffè.jpg 的图像。
现在,我使用PHP 构建页面,并且我已经通过这样做确保内容被解释为UTF-8:header("Content-Type: text/html; charset=ISO-8859-1");
所以看看这张图片:
如您所见,HTML 页面具有正确的文件名称:Caffè.jpg,但当浏览器使用 GET 请求图像时,è 的解释方式不正确。
这是否意味着 GET 请求不接受这些类型的字符?
这就是我获取文件名的方式:
<img src=\"./STRUCTURE/IMAGES/".$datas[$i]['name'].".jpg\" class=\"card_image\">
这可能很有用。 提前致谢。
【问题讨论】:
-
"我已经通过这样做确保内容被解释为 UTF-8: header("Content-Type: text/html; charset=ISO-8859-1?" — I请原谅?
-
@ÁlvaroGonzález PHP 文件正在构建 HTML 页面,因为它正在从数据库中获取所有必要的信息。由于我希望将内容解释为 UTF-8,因此我将行
header("Content-Type: text/html; charset=ISO-8859-1)添加为 PHP 文件中的第一行。 -
如果要UTF-8,为什么要声明ISO-8859-1? ISO-8859-1 在这里扮演什么角色?就像“为了确保它被解释为英语,我添加了 language=French”。
-
ISO-8859-1 少于 255 个字符。 UTF-8 拥有完整的 143,859 个字符的 Unicode 目录。无论您发现什么文章都说这很混乱。
-
您在其他地方使用过 ISO-8859-1 吗? UTF-8 是您从 2020 年开始需要使用的一切,但您需要在整个过程中使用它。另外,
C3A8是è的正确 UTF-8 编码,完全正确。