<?php
mb_regex_encoding('SJIS');
$string = "my number is 63735";
$pattern = "63735";
$replacement = mb_convert_encoding(pack('n', "63735"), "SJIS", "ASCII");
var_dump(bin2hex($replacement));
//expected result: my number is ��
//OK
$new_string = mb_ereg_replace($pattern, $replacement, $string);
//expected result: my new number is ��
//but it returns NULL.
$ret = mb_ereg_replace("number", "new number", $new_string);
var_dump($ret);
var_dump(mb_convert_encoding($ret, "UTF-8", "SJIS"));
string(4) "3f3f"
string(19) "my new number is ??"
string(19) "my new number is ??"
Output for 8.3.5
Warning: PHP Startup: Unable to load dynamic library 'sodium.so' (tried: /usr/lib/php/8.3.5/modules/sodium.so (libsodium.so.23: cannot open shared object file: No such file or directory), /usr/lib/php/8.3.5/modules/sodium.so.so (/usr/lib/php/8.3.5/modules/sodium.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0
string(4) "3f3f"
string(19) "my new number is ??"
string(19) "my new number is ??"