我有一个看起来像这样的字符串“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/