【问题标题】:PHP 7: Unicode escape syntax doesn't work on single quotesPHP 7:Unicode 转义语法不适用于单引号
【发布时间】:2017-12-18 16:14:06
【问题描述】:

当字符串用单引号设置时,unicode 不会被解码,但是当用双引号设置时 unicode 会被解码。

如何让单引号设置的字符串也被解码?

PHP

$poo = '\u{1F6BB}';
echo $poo;
$poo = "\u{1F6BB}";
echo $poo;

输出

\u{1F6BB}????

例子

http://sandbox.onlinephpfunctions.com/code/9a38e972226a6271996f512363c19332dae0b760

【问题讨论】:

  • 为什么不用双引号?
  • unicode 语法不适用于从数据库中提取的数据,但在使用双引号回显相同数据时有效。
  • 所以用双引号将输出括起来?
  • 重新包装一个字符串?
  • @SaidbakR getemoji.com 给你

标签: php string unicode php-7


【解决方案1】:

单引号字符串的意义在于它们支持转义字符。

documentation 说得很清楚:

所有其他反斜杠实例将被视为文字反斜杠:这意味着您可能习惯使用的其他转义序列,例如 \r 或 \n,将按指定的字面输出而不是具有任何特殊含义。

【讨论】:

  • 我如何让它工作呢?我正在从 mysql 数据库中检索 unicode,但它们没有被解码..
  • @MeghGandhi:这是一个完全不同的问题。为什么在数据库中有编码字符串?这几乎总是一个非常糟糕的主意。
  • 数据库不支持 unicode,我无法更改它,所以使用编码字符串是唯一的选择..
  • @MeghGandhi:那么你应该使用你用来编码字符串的任何东西的逆。并确保处理包含反斜杠的用户输入。
  • 我不明白你的意思?
猜你喜欢
  • 2022-01-22
  • 2020-02-04
  • 2022-01-24
  • 2019-03-25
  • 2020-05-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多