G M*_*han 5 html .htaccess encoding character-encoding
我的"em dash"字符在两台服务器上的显示方式不同.
当我访问服务器1时: -
当我访问服务器2时: â€
我没有使用任何数据库连接,只是纯HTML.
以下是我的HTML文件的前4行:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta charset="utf-8" />
Run Code Online (Sandbox Code Playgroud)
请帮帮我,我看不出它有什么问题.
如下所示,我用我的短划线替换了
–
Run Code Online (Sandbox Code Playgroud)
为了使服务器正确显示我的►字符,我必须将.htaccess放在具有以下代码行的文件夹中:
AddDefaultCharset UTF-8
Run Code Online (Sandbox Code Playgroud)
感谢大家!
如果服务器发送不同的Content-Type标头,这可能会发生.当提供不同的编码信息时,完全相同的文档可能具有不同的含义.
上传文件时可能会更改某些内容(错误的转换).但在这种情况下,通常,标题问题可能解释了差异.
如果文档是UTF-8编码并包含" - "(即EN DASH,U + 2013,而不是EM DASH),那么如果标题指定则显示OK Content-Type: text/html;charset=utf-8.但是如果标题有例如windows-1252而不是utf-8,那么构成UTF-8编码表示" - "的三个字节,即0xE2 0x80 0x93,将被解释为按照windows-1252编码,这意味着â €".如果你真的看到了,那么接下来发生的事情有点模糊,但修复编码问题更为重要,这可能解决问题.
它们可能使用不同的编码。在 UTF-8 中,您可以直接包含 m-dash (\xe2\x80\x94),但如果页面以 ASCII 形式提供,则需要将其编码为—. 查看源代码并查看它使用的是哪一个。
我认为这就是正在发生的事情,因为“\xe2\x80\x94”是多个字节长,所以它会被解释为多个 ASCII 字符。
\n| 归档时间: |
|
| 查看次数: |
5666 次 |
| 最近记录: |