llama.cpp b10275 fixes Windows UTF-8 output encoding in server tools
New llama.cpp release fixes garbled accented characters on Windows when using built-in tools.
llama.cpp, the popular C++ library for running LLMs locally, has shipped a new release tagged b10275. The update, published by ggml-org on August 4th, addresses a subtle but impactful bug in the server mode's built-in tools on Windows. The issue, tracked as #26597, caused output from child processes to be decoded incorrectly: on Western Windows installations, child processes write in the OEM code page, not UTF-8. As a result, accented characters reached the JSON processing layer as invalid bytes and were silently replaced, losing data without any error.
The fix in b10275 modifies the server to explicitly decode child process output using the system's OEM code page via GetOEMCP, then converts it to UTF-8. It also adds MB_ERR_INVALID_CHARS checks so that a wrong code page leaves text untouched rather than emitting replacement characters. Additionally, the implementation handles streamed chunks that may end mid multi-byte sequence, dropping incomplete trailing data before validation, and passes through text already valid UTF-8 to prevent double decoding. The release includes prebuilt binaries across Windows x64/arm64 (CPU, CUDA, Vulkan, OpenVINO, HIP), Linux, macOS, Android, and openEuler, making the fix immediately accessible to most users. For developers running local LLM inference or agentic tools via llama.cpp server on Windows, this update prevents silent character corruption in tool outputs and logs.
- Fixes Windows OEM code page to UTF-8 decoding in server built-in tools (#26597)
- Prevents silent loss of accented characters in child process output
- Shipment includes binaries for Windows x64/arm64 with CUDA 12/13, Vulkan, OpenVINO, and more
Why It Matters
Windows users running local LLM tooling will get accurate UTF-8 output, preventing silent data loss in logs and agent responses.