出于某种原因,html端的纯文本字符–
被忽略为–
。我唯一能想到的就是字符编码。我的猜测是它是utf-8,但不确定我是如何得到奇怪的角色的。 有解释吗?
默认情况下,我指的是未指定charset
。
答案 0 :(得分:2)
!DOCTYPE
未设置字符编码,meta
元素与(新标准化的)charset
属性一起设置。如果它不存在,我不完全确定浏览器如何确定编码。
我认为您遇到的问题是您的网页以一种编码方式保存,并在另一种编码中提供。
只需确保设置<meta charset="utf8"/>
并确保您的文档实际上是utf8,它应该可以正常工作。
答案 1 :(得分:2)
这肯定看起来像UTF-8被解释为其他东西。
HTML没有默认值。它是从传输协议的标头(通常是HTTP)中获取的,或者是来自BOM的meta
元素,或者在XHTML的情况下,是XML声明。在没有任何这些的情况下,用户代理猜测。
HTTP的默认值为ISO-8859-1,甚至一个HTML规范描述为“已证明无用”[source](他们甚至没有进入大量输出的事实标有ISO-8859-1的实际上是CP-1252)。
因此。忘记默认值,始终将您的HTTP标题设置为和元素(如果它保存为文件)。
并且始终以UTF-8为准。在这个时代,任何其他事物都只是一种受虐狂。
答案 2 :(得分:-1)
我使用Eclipse for PHP提供的默认值,并且没有遇到任何问题:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
</head>