PHP: 入库后转换的文本

PHP: Text transformed after being put in database

我有一个表单将数据发送到 mySQL 数据库。但是当我输入像 "Jack&Jones" 这样的文本时,特殊字符会转换为 HTML 特殊字符(此处,& 变为“&”)。

此数据库中插入的数据稍后可用于使用模板生成 Word 文档,但这些 HTML 个字符被读取错误,生成的文件完全混乱。

我试图通过确保我的所有页面都使用 <meta charset="UTF-8"> 标记并使用 header("Content-Type: text/html; charset=utf-8"); 来确保数据在整个过程中保持 UTF-8 编码来解决问题,但是它没用。

所以我的问题是:如何确保我的表单、我的数据库和我的word文档之间的编码一致性?

你可以使用

htmlspecialchars($_REQUEST['your_field'], ENT_QUOTES)

用于文本解码

你可以试试这个对你有帮助: 对于解码文本:

   htmlspecialchars("Jack&Jones", ENT_QUOTES);

对于如下所示的文本解码,您可以使用以下内容:

   <?php
      $str = "This is some &lt;b&gt;bold&lt;/b&gt; text.";
     echo htmlspecialchars_decode($str);
   ?>