Low level functions ScriptToAsmStr (core_io), i64tostr (strencodings) and itostr (strencodings) are locale dependent:
const std::vector<uint8_t> b{0x6a, 0x4, 0xff, 0xff, 0xff, 0xff};
const CScript script{b.begin(), b.end()};
for (const std::string& locale_string : {"C", "de_DE"}) {
std::locale::global(std::locale(locale_string));
std::cout << "[" << locale_string << "] ScriptToAsmStr(script, false) == "
<< ScriptToAsmStr(script, false) << "\n";
std::cout << "[" << locale_string << "] i64tostr(12345678) == "
<< i64tostr(12345678) << "\n";
std::cout << "[" << locale_string << "] itostr(12345678) == "
<< itostr(12345678) << "\n";
}
[C] ScriptToAsmStr(script, false) == OP_RETURN -2147483647
[C] i64tostr(12345678) == 12345678
[C] itostr(12345678) == 12345678
[de_DE] ScriptToAsmStr(script, false) == OP_RETURN -2.147.483.647
[de_DE] i64tostr(12345678) == 12.345.678
[de_DE] itostr(12345678) == 12.345.678
