PHP 将特殊字符转义为 html

标签 php html htmlspecialchars

我有一个看起来像这样的字符串“v\u00e4lkommen Until mig”,这是我在对字符串执行 utf8_encode() 后得到的。

我希望该字符串变成

 välkommen till mig

字符所在位置

  \u00e4 = ä = ä

如何在 PHP 中实现此目的?

最佳答案

  • 不要使用 utf8_(de|en) 代码。它只是在 UTF8 和 ISO-8859-1 之间进行转换。 ISO 8859-1 不提供与 ISO-8859-15 或 Windows1252 相同的字符,这些字符是最常用的编码(UTF-8 除外)。最好使用mb_convert_encoding。

  • "v\u00e4lkommentil mig"> 该字符串看起来像一个 JSON 编码的字符串,它已经是 utf8 编码的。 “ä”的unicode代码位置是U+00E4 >> \u00e4

示例

<?php
header('Content-Type: text/html; charset=utf-8');
$json = '"v\u00e4lkommen till mig"';
var_dump(json_decode($json)); //It will return a utf8 encoded string "välkommen till mig"

这个字符串的来源是什么?

如果您在 utf8 编码文档中打印它并告诉浏览器所使用的编码,则无需将 ä 替换为其 HTML 表示形式 ä。如果有必要,请使用 htmlentities:

<?php
$json = '"v\u00e4lkommen till mig"';
$string = json_decode($json);
echo htmlentities($string, ENT_COMPAT, 'UTF-8');

关于PHP 将特殊字符转义为 html,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18162736/

相关文章:

php - 如何保护表单?

php - 为什么 htmlspecialchars 不转换输入值内的引号?

php - Cakephp 3 无法从插件加载类

php - 如何从 PHP 代码获取 Flash 视频文件的尺寸?

html - knockout attr 与 'readonly' 和 'disabled' 等属性的绑定(bind)

javascript - 简单的 jQuery 自定义向导表单

php - htmlspecialchars() 导致变量返回空白数据?

php - artisan : Could not find driver

php - 使用 Validator 验证 Laravel 中的用户输入

php - 仅使用 php 选择任何表数据时链接表中的一行