编码UTF-8不起作用

fis*_*h40 1 html php html5

<html>
    <head>
        <title>????</title>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
Run Code Online (Sandbox Code Playgroud)

我设置了元标记,但每当我打开浏览器(Chrome)时,我都必须转到工具 - >编码并在UTF-8上设置编码才能使其正常工作.有没有办法避免这一步,所以浏览器显示正确的UTF-8?

Asa*_*aph 6

您的Web服务器可能正在发送Content-Type一个不同的标头charset.这将优先于您的<meta>标记.使用curl(*nix system required)在命令行上确认:

curl -i http://example.com/yourpage.php
Run Code Online (Sandbox Code Playgroud)

查看响应开头的http标头并找到Content-Type标头.

您可以通过以下几种方式解决此问题:

  1. 配置您的Web服务器(我猜Apache)发送相应的字符集.请参阅Apache文档AddDefaultCharset.

  2. Content-Type使用该header()函数在脚本中设置标题.像这样:

    header('Content-Type: text/html; charset=UTF-8');
    
    Run Code Online (Sandbox Code Playgroud)

    但是请确保在浏览器的任何其他输出之前调用此调用,否则PHP将会阻塞.