我正在努力
$source = mb_convert_encoding('test', "unicode", "utf-8");
$source = unpack('C*', $source);
var_dump($source);
返回:
array (size=8)
1 => int 0
2 => int 116
3 => int 0
4 => int 101
5 => int 0
6 => int 115
7 => int 0
8 => int 116
但我希望这次回归:
array (size=8)
1 => int 116
2 => int 0
3 => int 101
4 => int 0
5 => int 115
6 => int 0
7 => int 116
8 => int 0
我想在openssl函数中使用此返回进行加密。只是$source
对我很重要,我会编写其他代码进行调试。
我该怎么做才能解决这个问题?
答案 0 :(得分:6)
“Unicode”不是真正的编码;它是总体标准的名称,并且主要由Microsoft用作UTF-16BE的别名,显然PHP支持它就是出于这个原因。你期望的是UTF-16LE,所以明确地使用它:
$source = mb_convert_encoding('test', 'UTF-16LE', 'UTF-8');