在 PHP 中将 Unicode 转换为 UTF-16

Convert Unicode to UTF-16 in PHP

我有一个 unicode 文本需要转换为 UTF-16。

我遇到的问题是,unicode 文本以 UFT-16 格式保存在数据库中。现在我需要 运行 一个搜索查询,但是 POST 数据将实际的 unicode 带到参数中。所以我需要将其转换为 UTF-16 格式以 运行 搜索查询。

我正在尝试的 unicode 文本 search/convert - 基本的

文本在数据库中的保存方式 - \u57fa\u672c\u7684\u306a\u8105\u5a01\u4fdd\u8b77

我尝试了从 Whosebug 中提取的以下代码,但似乎没有任何效果。

if (strlen($value) != strlen(utf8_decode($value))) {
   $c = unpack('N', mb_convert_encoding($value, 'UCS-4BE', 'UTF-8')); // returns an array [42]
   $d = mb_check_encoding($value,"UTF-8"); // returns true
   $e = utf8_encode($value); // returns *基本的*
   $f = mb_convert_encoding($value, 'UCS-4BE', 'UTF-16'); // returns some weird characters (Whosebug even doesn't allow to post the question with it)
}

有人知道如何进行此转换或我可以采用任何替代路径来完成搜索吗?

正如@jspit 在评论中提到的,\u57fa\u672c\u7684\u306a\u8105\u5a01\u4fdd\u8b77基本的な脅威保護json_encode 表示。

我能够使用 json_decode 获得原始的 UTF-8 表示。