在 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 表示。
我有一个 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 表示。