我对utf8_decode()的行为感到困惑,只是想澄清一下。我希望没关系。我的脚本工作正常,但我很困惑,为什么我必须使用utf8_decode()
下面是我使用捕捉一些文本,并将其保存到我的MySQL数据库(它使用utf8_general_ci整理)一个简单的HTML表单:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
<form action="update.php" method="post" accept-charset="utf-8">
<p>
Title: <input type="text" name="title" id="title" accept-charset="utf-8" size="75" value="" />
</p>
<p>
<input type="submit" name="submit" value="Submit" />
</p>
</form>
</body>
</html>
正如你可以看到我有这个编码在恰当的地方使用charset = utf8。我们接受包含变音符号的文本(例如,ñ,ó等)。最后,我们在所有文本输入上运行一个小脚本来检查变音符号并将它们更改为HTML实体(例如,变为& ntilde;)。
当我的脚本接收到输入时,首先必须执行utf8_decode($ input),然后运行我的小脚本以检查并根据需要更改变音符号。一切正常。我很好奇为什么我必须在这个输入上运行解码。据我所知,utf8_decode将以UTF-8编码的字符串转换为ISO-8859-1。我想确保 - 即使一切正常(或者我认为),- - 我没有做一些棘手的事情,以后会赶上我。例如,我发送ISO-8859-1编码字符以存储在设置为存储/提供UTF-8字符的数据库中。我应该在字符串上运行utf8_encode(),以便我的符号转换为实体脚本返回?例如:
欣赏任何人都必须提供的见解。
+1不让“它的作品”足够好 – bernie 2012-03-22 19:09:01