我一直在试图正确理解HTML中的字符编码,并希望有人能够帮助我解决一个小问题,一直在遭遇。试图围绕HTML字符编码和htmlspecialchars围绕我的大脑()
我从一个mySQL数据库表(拉丁语-1)拉一段文本。该段恰好有一个正确的单引号在里面,我读它是通过htmlspecialchars()
显示在屏幕上运行之前那种字符串数据的一个好主意,所以我想...
// So let's say $paragraph is a string like "The customer's computer is on".
echo htmlspecialchars($paragraph);
这呈现为屏幕"The customer'’s computer is on"
。起初我认为这很奇怪,因为我预计’
会自动呈现为右单引号,但后来我想也许我已经忘记了元标签。由于数据库表是Latin-1的,我想下面的标签将帮助它正确地呈现...
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
,但仍然没有骰子,它仍然显示为’
。我也试过...
htmlspecialchars($paragraph, ENT_QUOTES, 'ISO-8859-1');
但它仍然呈现相同。如果我甚至不使用htmlspecialchars()
,它会按预期渲染到屏幕上,但我想我只是想了解为什么htmlspecialchars()
不能呈现我期望的效果。也许我完全误解了这些函数以及它们应该如何在浏览器中渲染,所以对此的任何帮助将非常感谢,谢谢!
编辑:要多一些奇怪添加到方程式,我试着手动键入’
到HTML文件,而且它实际上呈现为右单引号。然而,当我看HTML时,我看到htmlspecialchars()正在输出的’
,而不是我期望的正确的单引号。有谁知道为什么会这样?这是预期的功能吗?
这是htmlspecialchars应该做什么?我猜想当我将html实体放入文档时,我认为浏览器会处理它,并将其显示为屏幕上的实际正确单引号。这一思路是不正确的?它真的应该只呈现为unicode文本吗? –