<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?
您的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标头.
您可以通过以下几种方式解决此问题:
配置您的Web服务器(我猜Apache)发送相应的字符集.请参阅Apache文档AddDefaultCharset.
Content-Type使用该header()函数在脚本中设置标题.像这样:
header('Content-Type: text/html; charset=UTF-8');
Run Code Online (Sandbox Code Playgroud)
但是请确保在浏览器的任何其他输出之前调用此调用,否则PHP将会阻塞.