PHP:htmlentities 和 htmlspecialchars 不转换某些字符

标签 php mysql html-entities htmlspecialchars

我正在尝试将所有特殊字符转换为 HTML 安全实体,使其进入我的数据库,但我似乎无法让 PHP 处理某些字符。例如,如果我的字符串包含以下任何内容:¡£¢∞§¶ 它会变成一个空字符串。

例如,下面的字符串:

你好£

通过以下代码POST处理后变成空字符串:

$workDetails["copy"] = htmlentities($workDetails["copy"], ENT_QUOTES, "UTF-8");

我想我做错了什么? :(

最佳答案

如果您通过 header() 将您网站的编码更改为 UTF-8,也许就足够了命令:

header("Content-Type: text/html; charset=utf-8");在 PHP 中

<?xml version="1.0" encoding="utf-8" ?>;在您的 HTML 模板顶部(如果您使用的话)。

但如果您确实需要将这些字符转换为其特定的 html 代码,您应该创建自己的函数来替换 htmlspecialchars() 未涵盖的符号。

关于PHP:htmlentities 和 htmlspecialchars 不转换某些字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11082365/

相关文章:

php - 使用 PHP 进行即时搜索

mysql - 如何在新列中转换(SELECT)不同类型的行?

php - html_entity_decode 也会替换吗?如果不行怎么换?

html - 如何通过 HTML 代码编写双引号

php - 消除 Excel 文档的缓存

php - 将非 ascii 字符串作为数组和字符处理

php - 如何比较两个输入变量与mysql存储值(PHP)?

php - CSV 到 Mysql 数据库

html - (X)HTML 中的保留字符是什么?

php - 在php mysql中使用while循环的问题