php - 表单和 HTML Purifier/MySQL 的编码问题

标签 php mysql unicode encoding

快把我逼疯了...

带有表单的页面通过以下方式编码为 Unicode (UTF-8):

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

数据库中的条目列是 text utf8_unicode_ci

从包含 "的 Word 文档中复制文本,如下所示: “1922.” 会立即失败,并最终在数据库中显示为 â��1922.â�� (在表单中输入新数据,包括 " 工作正常。 .它是从 Word 剪切并粘贴的...)

PHP 幕后步骤是:

  • 从 POST 中获取值(value)
  • 通过 HTML Purifier 默认设置运行
  • 运行 mysql_real_escape_string
  • 将查询插入数据库

帮忙?

最佳答案

“1922。” 和“1922。”是 2 个不同的字符串。
word 中的引号不是双引号“!=”

您描述的列是text utf8_unicode_ciutf8_unicode_ci 是排序规则,确保该列上的字符集设置为 utf8

然后我将确保您使用 SET NAMES utf8 COLLATE utf8_unicode_ci...

为每个连接设置正确的编码

如果您已完成此操作但仍未正确保存,请确保您的 php 已启用 mbstrings 并尝试使用 mb_ 函数。

您可能有很多根本原因,但我认为列上的字符集SET NAMES ...应该可以解决它。

关于php - 表单和 HTML Purifier/MySQL 的编码问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2729476/

相关文章:

python 2.7 : print doesn't speak unicode to the io module?

c++ - Unicode 字符串文字

php - 在 PHP 中重新排序字符串

mysql - mysql如何根据存储过程中的参数动态创建where条件?

php - 这是在 PHP 中构造 mysql_query 的安全方法吗

php - 如何在mysql中对选定结果使用where条件

php - 未设置 Cookie,但其余代码正在执行?

php - 在模态对话框中使用 Bootstrap Clockpicker

javascript - 从 Gutenberg SelectControl 获取值(value)到前端的 php

python - 如何在 Python 中获得可靠的 unicode 字符数?