添加正确的 Content-Type 标头对于 PHP 应用程序正常运行很重要。
然而,令人惊讶的是,许多人仍然没有为他们希望提供的内容类型添加正确的字符编码。
在某些情况下,人们甚至选择用 HTML 编码的替代品替换某些字符,而不是学习如何正确选择和实现适当的字符编码。
在当今全球化的世界中,从新项目开始就支持多种语言通常是一种很好的做法。
很难判断何时可能需要支持来自其他语言的特殊字符,因此,从一开始就支持 UTF-8 是一个好主意。
例如,要支持丹麦语字母(Æ 、 Ø 和 Å ),我们可以在 Content-Type 标头字段中使用 UTF-8.
header('Content-Type: text/html; charset=utf-8');
要添加内容类型,我们可以使用 PHP 的 header 函数。
Mime 类型的例子
mime-type 应该放在字符编码之前。
在上面的例子中,我们只使用了 text/html——但还有很多其他的!我在下面列出了一些常用的:
text/html | 对于.html页面(注意。扩展在Web上是可选的)。 |
---|---|
text/plain | 纯文本文件。如果使用此HTML页面,则将显示HTML源,而无需语法突出显示。 |
image/jpeg | JPEG图像。也可以使用PHP输出图像。 |
image/png | PNG图像。我们还可以在PHP中输出PNG图像。 |
image/webp | WEBP图像。压缩优于PNG和JPG。 |
image/avif | A1/AVIF图像。压缩优于大多数其他格式,包括网页。 |
video/mp4 | 视频格式。用于流媒体。 |
text/javascript | JavaScript文件。 USEF for客户端脚本。 |
text/css | CSS文件。用于控制网页的造型。 |
application/pdf | 用于提供.pdf文件。是的!我们也可能在PHP中创建.pdf! |
选择正确的 MIME 类型很重要,这样浏览器才能知道如何显示内容。
PHP 不仅提供 HTML 和文本页面,它还可以显示图像和视频!
元中的字符编码不是必需的
如果我们希望用户在本地保存网页,那么我们应该注意某些系统可能不会以正确的字符编码保存文件。
在这些情况下,我们可以在 HTML 中包含一个 meta 元素,声明文件的字符编码:
<meta http-equiv="Content-type" content="text/html; charset=utf-8">
如果 meta 元素中声明的 Content-Type 与 HTTP 标头之间存在不匹配,则 HTML 验证器将显示类似于以下内容的错误:
HTTP 标头 (iso-8859-1) 中指定的字符编码与元素中的值 (utf-8) 不同。
此问题的解决方案是始终确保元数据和 HTTP 标头 Content-Type 匹配。
日期:2020-06-02 22:15:57 来源:oir作者:oir