通过HTML表单发布到PHP的损坏字符
我知道这一定是一个相对简单的问题,但谷歌让我失望了。假设我有以下简单的PHP文档(没有关于安全性、SQL注入、XSS等的讨论。这只是一个简单的示例来说明我的编码问题):通过HTML表单发布到PHP的损坏字符,php,html,encoding,utf-8,Php,Html,Encoding,Utf 8,我知道这一定是一个相对简单的问题,但谷歌让我失望了。假设我有以下简单的PHP文档(没有关于安全性、SQL注入、XSS等的讨论。这只是一个简单的示例来说明我的编码问题): 现在,我在表单中输入一个∑,然后提交。重新加载页面时,文本区域将填充Î,而不是∑ 我理解这是为什么(在某种程度上),但我不知道如何修复帖子来阻止它发生。有什么想法吗?我看到您正在向文件中添加文本,然后将该文件拉回来。将信息添加到文件时是否尝试使用utf8\u encode() file_put_contents($file
现在,我在表单中输入一个∑,然后提交。重新加载页面时,文本区域将填充Î,而不是∑
我理解这是为什么(在某种程度上),但我不知道如何修复帖子来阻止它发生。有什么想法吗?我看到您正在向文件中添加文本,然后将该文件拉回来。将信息添加到文件时是否尝试使用
utf8\u encode()
file_put_contents($filename, utf8_encode($_POST['message']));
我看到您正在向文件中添加文本,然后将该文件拉回来。将信息添加到文件时是否尝试使用
utf8\u encode()
file_put_contents($filename, utf8_encode($_POST['message']));
默认情况下,假设ISO-8859-1作为输入,但您为其提供utf-8…,因此正确的方法是htmlentities($string,ENT_COMPAT,“utf-8”)代码>
在这种情况下,我宁愿选择htmlspecialchars
,但不需要其他实体。默认假定ISO-8859-1作为输入,但您将其输入utf-8…,因此正确的方法是HTMLEntitys($string,ENT_COMPAT,“utf-8”)代码>
在这种情况下,我宁愿选择htmlspecialchars
,但不需要其他实体。您的数据库是否保存在UTF-8中?没有数据库。文件夹。虽然我确信如果我保存到数据库中也会发生同样的情况。您的数据库是否保存在UTF-8中?没有数据库。文件夹。虽然我确信如果我保存到数据库中也会发生同样的情况,但不幸的是,这给了我一个错误�您是否尝试删除htmlentities()
?有趣的是<代码>utf8_解码
可以工作。。。但是最好告诉htmlentities
您有一个实际的utf8字符串。。。我的经验法则通常是:如果你提供utf-8,并且你的代码中有utf8\u编码
或utf8\u解码
的任何地方,实际上有些地方是错的。不幸的是,这给了我一个错误�您是否尝试删除htmlentities()
?有趣的是<代码>utf8_解码
可以工作。。。但是最好告诉htmlentities
您有一个实际的utf8字符串。。。我的经验法则通常是:如果您提供utf-8,并且您的代码中有utf8\u encode
或utf8\u decode
的任何地方,实际上有些地方出了问题。我没有意识到htmlentities
是这样工作的。使用htmlspecialchars
时,它就像一个符咒一样工作,并且是根据我使用它的目的调用的适当函数。谢天谢地,我没有意识到htmlentities
是这样工作的。使用htmlspecialchars
时,它就像一个符咒一样工作,并且是根据我使用它的目的调用的适当函数。谢谢