<?php
mb_regex_encoding('SJIS');
$string = "my number is 63735";
$pattern = "63735";
$packed = pack('n', "63735");
//before convert to ASCII: f8f7
var_dump(bin2hex($packed));
$replacement = mb_convert_encoding($packed, "SJIS", "ASCII");
//after convert to ASCII: 3f8180
var_dump(bin2hex($replacement));
//after converting back to SJIS:
var_dump(bin2hex(mb_convert_encoding($replacement, "UTF-8", "SJIS")));
//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) "f8f7"
string(4) "3f3f"
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) "f8f7"
string(4) "3f3f"
string(4) "3f3f"
string(19) "my new number is ??"
string(19) "my new number is ??"