我的“破折号”字符在两台服务器上的显示方式不同。
当我访问服务器1时: -
当我访问服务器2时: -
我没有使用任何数据库连接,只是纯HTML。
以下是我的HTML文件的前4行:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta charset="utf-8" />
请在这里帮助我,我看不出它有什么问题。
如下所示,我用
替换了我的短划线–
要使服务器正确显示我的►字符,我必须在.htaccess中放入以下代码行:
AddDefaultCharset UTF-8
谢谢大家!
答案 0 :(得分:5)
如果服务器发送不同的Content-Type
标头,则可能会发生这种情况。当使用不同的编码信息时,完全相同的文档可能具有不同的含义。
上传文件(转换错误)时,某些内容也可能会发生变化。但在这种情况下,通常,标题问题可能解释了差异。
如果文档是UTF-8编码并且包含“ - ”(即EN DASH,U + 2013,而不是EM DASH),那么如果标题指定Content-Type: text/html;charset=utf-8
则会显示OK。但是如果标题有例如windows-1252而不是utf-8,那么构成UTF-8编码表示“ - ”的三个字节,即0xE2 0x80 0x93,将被解释为每个windows-1252编码,这意味着â€。如果你真的看到,那么会发生什么有点模糊,但更重要的是修复编码问题,这可能解决问题。
答案 1 :(得分:1)
他们可能会接受不同的编码。在UTF-8中,您可以直接包含m-dash( - ),但如果页面作为ASCII提供,则需要将其编码为—
。看看源代码,看看它使用的是什么。
我认为这就是发生的事情,因为“ - ”是多个字节长,所以它会被解释为多个ASCII字符。