-
Notifications
You must be signed in to change notification settings - Fork 64
Description
Describe the bug
When using Open‑CMSIS "csolution" with a project whose filenames contain non‑ASCII characters, csolution fails to resolve the corresponding .cproject.yml file and reports that the file was not found.
The paths printed by csolution are corrupted , which strongly suggests an encoding / Unicode handling issue for non‑ASCII paths.
This does not affect only simple accented Latin letters; the problem can happen with a wide variety of Unicode characters, including:
Extended Latin letters / accents: é è ê ë á à ä ã å ö ó ò ñ ç š ž ł Ø ß …
Non‑Latin scripts:
Greek: α β γ δ Ω …
Cyrillic: Б Ю Я ж й …
Arabic: ا ب ت ث م …
Hebrew: א ב ג ד ה …
Indic scripts: Devanagari अ आ क ख, Bengali, Tamil, etc.
East Asian: CJK (Chinese), Japanese Kanji, Hiragana あ い う, Katakana ア イ ウ, Korean Hangul 가 나 다 …
Punctuation and typographic symbols:
Curly quotes: “ ” ‘ ’
Dashes: – (en dash), — (em dash)
Ellipsis: …
Non‑breaking space and other Unicode spaces
Currency and specialty symbols:
€, £, ¥, ₹, ₽, ₩, etc.
©, ®, ™
Section/paragraph: §, ¶
Mathematical / technical symbols:
±, ×, ÷, ≤, ≥, ∞, ∑, ∫, √, ≠, ≈, arrows ← → ↑ ↓, etc.
In short, any non‑ASCII character in filenames or paths can trigger the issue.
To Reproduce
Create the following minimal Open‑CMSIS project structure (only filenames are important):
./project
./project/tést_project_françois.cproject.yml
./tést_project_françois.csolution.yml
In tést_project_françois.csolution.yml, reference the .cproject.yml file:
yaml
solution:
projects:
- project: project/tést_project_françois.cproject.yml
From the directory containing tést_project_françois.csolution.yml, run:
csolution list contexts -s tést_project_françois.csolution.yml
or:
csolution list configs -s tést_project_françois.csolution.yml
Observe the console output.
Actual behavior
csolution prints a corrupted path and reports that the .cproject.yml file cannot be found, even though it exists:
project/tést_project_françois.cproject.yml - error csolution: cproject file was not found
Notes:
The actual file project/tést_project_françois.cproject.yml exists on disk.
The path printed by csolution (t├⌐st_project_fran├ºois) is the corrupted form of tést_project_françois, indicating that non‑ASCII characters in filenames are being misinterpreted (character encoding / Unicode issue).
If the files are renamed to ASCII‑only names (for example test_project_francois.cproject.yml / test_project_francois.csolution.yml) and the .csolution.yml is updated accordingly, the commands work as expected.
Similar issues occur if the filenames use other non‑ASCII characters from the categories listed above (extended Latin, Greek, Cyrillic, CJK, etc.).
Expected behavior
csolution should correctly handle project and file names that contain Unicode / non‑ASCII characters when:
Reading .csolution.yml and .cproject.yml.
Resolving file paths and opening the corresponding project files.
Printing the paths in diagnostic messages.
The commands:
csolution list contexts -s tést_project_françois.csolution.yml
csolution list configs -s tést_project_françois.csolution.yml
csolution run -g "GenId" ....
should succeed as long as the referenced files exist, regardless of non‑ASCII characters in their names.
Environment :
Tool / library: Open‑CMSIS csolution (CMSIS‑Toolbox)
Version: 2.11.0
OS: Windows 11 x64
Shell / terminal: Git Bash (MINGW64)
Additional context
The issue is systematic whenever non‑ASCII characters are present in project filenames or paths that are referenced by csolution.
It is not limited to comments or content inside YAML; it specifically affects filenames and paths.
The behavior is consistent with a mismatch between UTF‑8 file encodings / filesystem names and the internal encoding or console output of csolution / its runtime environment on Windows.
Current workaround:
Restrict project names, filenames, and paths referenced by csolution to ASCII characters only.
This may not be practical in localized environments or for users whose default naming uses accents or non‑Latin scripts.
Request
Add robust UTF‑8 / Unicode support in csolution for:
Parsing YAML with Unicode paths.
Handling and passing Unicode file paths on all supported platforms (including Windows 11 with Git Bash / MINGW64).
Printing those paths correctly in logs and error messages.
If full Unicode support is not immediately possible, please:
Detect non‑ASCII characters in project names/paths early, and
Emit a clear, user‑friendly error stating that only ASCII is currently supported, instead of a misleading “file not found” with a corrupted path.
Metadata
Metadata
Assignees
Labels
Type
Projects
Status