PHP字符编码问题

Jam*_*mes 4 php xml utf-8 character-encoding

我需要一个字符编码问题的帮助,我想一劳永逸地排序.以下是我从XML提要中提取的一些内容的示例,插入到我的数据库然后拔出.

你看不到,很多特殊的html字符被破坏/破坏.

我怎么能一劳永逸地阻止这个呢?我如何能够支持所有类型的角色等?

我已经尝试过我能找到的每一段编码,它有时会纠正它,但其他一些都被破坏了.

Pet*_*nov 11

绝对一劳永逸确保你将永远不会再有编码问题:

在任何地方使用UTF-8!

那是(如果你使用mysql和php):

  • 例如,将数据库中的所有表设置为排序规则"utf8_general_ci".
  • 建立数据库连接后,运行以下SQL查询:"SET NAMES'utf8'"
  • 始终确保编辑器的设置设置为UTF-8编码.
  • 在HTML文档的部分中包含以下元标记:

    <meta http-equiv ="content-type"content ="text/html; charset = utf-8">

和几个奖金提示:

要么:

您可以使用一个简单的服务器端配置文件来处理所有编码内容.在这种情况下,您根本不需要标头和/或元标记或php.ini文件修改.只需将您想要的字符集编码添加到.htaccess文件并将其放入您的www根目录.如果你想摆弄字符集字符串并使用你的PHP代码 - 那就是另一个故事.数据库整理必须是正确的.

脚注:UTF-8是不编码解决方案的其一个解决方案.只要已经考虑使用的环境,使用什么字符集/编码并不重要.


Jam*_*mes 0

header('Content-type: text/html; charset=UTF-8') ;

/**
 * Encodes HTML safely for UTF-8. Use instead of htmlentities. 
 *
 * @param string $var 
 * @return string 
 */
function html_encode($var)
{
    return htmlentities($var, ENT_QUOTES, 'UTF-8');
}
Run Code Online (Sandbox Code Playgroud)

那两个人救了我,我想现在正在发挥作用。如果我继续遇到问题,我会回来。我应该将它存储在数据库中,例如作为“&”还是“&”?