CodeChecker 6.29+ ignores locale settings and forces UTF-8
Maintainers usually reply within 8 days
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 35/100
Research direction
Start by locating the code that formats plaintext output for CodeChecker version and checking how it selects box-drawing characters. Reproduce with LC_ALL=C LANG=C TERM=dumb CodeChecker version and inspect the existing tests for version output. Done means the output uses ASCII in the reported environment while retaining the current UTF-8 formatting otherwise; pull request #5123 is already open for this issue.
Written by the indexing model from the issue text.
Description
Describe the bug
Since version 6.29, CodeChecker formats plaintext output using multi-byte UTF-8 box-drawing characters. While visually appealing in interactive terminals, this creates a regression for headless environments, CI pipelines (like Jenkins), and ASCII-only wrapper scripts.
When CodeChecker output is piped to a Jenkins console or an ASCII-expecting log viewer, the UTF-8 sequences render as gibberish. The core issue is that CodeChecker currently ignores the standard POSIX environment variables (LC_ALL=C, LANG=C, TERM=dumb) that dictate character encoding and terminal capability constraints.
CodeChecker version
[INFO 2026-10-02 10:38:53] - CodeChecker analyzer version:
┌──────────────────────┬──────────────────────────────────────────┐
│ Kind │ Version │
├──────────────────────┼──────────────────────────────────────────┤
│ Base package version │ 6.29.0 │
│ Package build date │ 2026-09-11T09:30 │
│ Git commit ID (hash) │ a259e69d3d5e8dc083c5d60219a8668b5e3c5084 │
│ Git tag information │ 6.29 │
└──────────────────────┴──────────────────────────────────────────┘
[INFO 2026-10-02 10:38:53] - CodeChecker web version:
┌─────────────────────────────────────┬──────────────────────────────────────────┐
│ Kind │ Version │
├─────────────────────────────────────┼──────────────────────────────────────────┤
│ Base package version │ 6.29.0 │
│ Package build date │ 2026-09-11T09:30 │
│ Git commit ID (hash) │ a259e69d3d5e8dc083c5d60219a8668b5e3c5084 │
│ Git tag information │ 6.29 │
│ Server supported Thrift API version │ 6.74 │
│ Client Thrift API version │ 6.74 │
└─────────────────────────────────────┴──────────────────────────────────────────┘
To Reproduce
Steps to reproduce the behaviour:
- Force a strict ASCII environment using standard POSIX variables:
LC_ALL=C LANG=C TERM=dumb CodeChecker version - Pipe the output to an ASCII-only viewer or Jenkins console.
Expected behaviour
CodeChecker should inspect LC_ALL and LANG environment variables. If a non-UTF-8 locale (such as C or POSIX) is detected, it should automatically degrade to a standard ASCII-only format.
Disclaimer: I wrote the issue manually but used Gemini to sharpen up the technical details in the description.
- Dominant language
- Python
- Stars
- 2.6k
- Forks
- 494
- Avg merge
- 6d 24m
- Merged PRs (30d)
- 23
Getting set up
- No Dockerfile or Docker Compose file
- No pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from Ericsson/codechecker
-
good to go :rocket:
Difficulty 1/5 Under an hour Newbie friendliness 82/100
Ericsson/codechecker#5129 ·
Maintainers usually reply within 8 days
-
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
Ericsson/codechecker#5110 ·
Maintainers usually reply within 8 days
-
Bug Report: diagtool not found on WindowsPossibly taken A pull request linked to this issue is open or already merged. Opengood to go :rocket:
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
Ericsson/codechecker#4802 ·
Maintainers usually reply within 8 days
-
analyzer :chart_with_upwards_trend: CLI :computer: discussion :bulb: enhancement :star2:
Difficulty 2/5 1-3 hours Newbie friendliness 66/100
Ericsson/codechecker#3836 · 2 comments ·
Maintainers usually reply within 8 days
-
Add --use-path-prefix parameter to CodeChecker store/parse/diff [bazel]Possibly taken @furtib claimed this 2 days ago. Openbazel :jigsaw: new feature :+1:
Ericsson/codechecker#5150 · 1 assignee ·
Maintainers usually reply within 8 days
All issues in Ericsson/codechecker
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 85/100
Maintainers usually reply within 1 day
-
infrastructure qa
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
khuisman/mcp-gee-sweet#1068 ·
Maintainers usually reply within 1 day
-
area:ecosystem documentation
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
Chelis-Lang/chelis#3866 ·
Maintainers usually reply within 1 day
-
`lvm_compact` has no self-hosted twin, and `docs/158` §5 says every language-face component mustOpenbug sev-3 vm
Difficulty 2/5 1-3 hours Newbie friendliness 65/100
-
issue: Picking a prompt from the / menu in a channel inserts a command chip instead of the promptOpenbug confirmed issue
Difficulty 2/5 Half a day Newbie friendliness 78/100
open-webui/open-webui#32712 · 2 comments ·
Maintainers usually reply within 1 day