From d993d8a21d0aa2e88e31a93e58fb4708b8efb605 Mon Sep 17 00:00:00 2001 From: Sean Bright Date: Fri, 23 Jan 2026 10:57:19 -0500 Subject: [PATCH] asterisk.c: Use C.UTF-8 locale instead of relying on user's environment. Resolves: #1739 --- main/asterisk.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/main/asterisk.c b/main/asterisk.c index 8700a8f7ac..20421eb268 100644 --- a/main/asterisk.c +++ b/main/asterisk.c @@ -3629,10 +3629,13 @@ int main(int argc, char *argv[]) struct rlimit l; static const char *getopt_settings = "BC:cde:FfG:ghIiL:M:mnpqRrs:TtU:VvWXx:"; - /* Bring in locale settings from the environment. This is needed - for libedit, as the LC_CTYPE category of the locale impacts the - the multi-byte character functions provided by libc */ - setlocale(LC_ALL, ""); + /* Try to explicitly set a UTF-8 locale. This is needed for + libedit, as the LC_CTYPE category of the locale impacts the the + multi-byte character functions provided by libc. If it fails, + so be it. */ + if (!setlocale(LC_ALL, "C.UTF-8")) { + ast_debug(1, "Tried to set locale to C.UTF-8 but it failed\n"); + } /* Remember original args for restart */ if (argc > ARRAY_LEN(_argv) - 1) {