diff --git a/changelogs/fragments/9157-fix-dnf_config_manager-locale.yml b/changelogs/fragments/9157-fix-dnf_config_manager-locale.yml
new file mode 100644
index 0000000000..f2084dfa5f
--- /dev/null
+++ b/changelogs/fragments/9157-fix-dnf_config_manager-locale.yml
@@ -0,0 +1,2 @@
+bugfixes:
+  - dnf_config_manager - forces locale to ``C`` before module starts. If the locale was set to non-English, the output of the ``dnf config-manager`` could not be parsed (https://github.com/ansible-collections/community.general/pull/9157, https://github.com/ansible-collections/community.general/issues/9046).
\ No newline at end of file
diff --git a/plugins/modules/dnf_config_manager.py b/plugins/modules/dnf_config_manager.py
index 9ec439c225..aa2571d9f0 100644
--- a/plugins/modules/dnf_config_manager.py
+++ b/plugins/modules/dnf_config_manager.py
@@ -186,6 +186,7 @@ def main():
         argument_spec=module_args,
         supports_check_mode=True
     )
+    module.run_command_environ_update = dict(LANGUAGE='C', LC_ALL='C')
 
     if not os.path.exists(DNF_BIN):
         module.fail_json(msg="%s was not found" % DNF_BIN)