ymonster/claude_encoding_guard
3 stars · Last commit 2026-05-03
Prevent Claude Code from breaking your non-UTF-8 files. Preserve your file as it is (also line ending format).
README preview
# claude_encoding_guard
Preserve non-UTF-8 file encodings and line endings when Claude Code edits your files.
[中文文档](README_CN.md)
## The Problem
Claude Code's Edit/Write tools always output UTF-8 with LF line endings. When editing files in GBK, Big5, Shift_JIS, or other legacy encodings, the original encoding is silently destroyed. CRLF line endings are also lost on Windows. The official response is ["not planned"](https://github.com/anthropics/claude-code/issues/12203).
Related issues: [#6485](https://github.com/anthropics/claude-code/issues/6485), [#7134](https://github.com/anthropics/claude-code/issues/7134), [#28523](https://github.com/anthropics/claude-code/issues/28523), [#38887](https://github.com/anthropics/claude-code/issues/38887).
## How It Works
```
PreToolUse (Read) PostToolUse (Edit/Write)
│ │
├─ binary check (binaryornot) ├─ read cached encoding + line ending
├─ detect encoding (chardet 5.x) ├─ convert UTF-8 → original encoding
├─ detect line ending (CRLF/LF) ├─ normalize line endings to original