# Encoding Fix

> Восстановление текста (mojibake) при двойном/тройном кодировании UTF-8. Исправляет неверную интерпретацию Windows cp1252/Latin-1. Нуль зависимостей.

- Skill: `ellmos-ai/encoding-fix-5` (Agent Skill)
- Install (CLI): `npx skillmds@latest add ellmos-ai/encoding-fix-5`
- Raw SKILL.md: https://api.skillmd.com/api/skills/ellmos-ai/encoding-fix-5/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: ellmos-ai (https://skillmd.com/u/ellmos-ai)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/ellmos-ai/encoding-fix-5

---


<img src="banner.png" width="100%" alt="encoding-fix banner">

> **Русский** — Официальная русская версия `encoding-fix`.


# Encoding Fix (Русский)

Исправляет mojibake (двойное/тройное кодирование UTF-8), вызванное ошибочной интерпретацией Windows cp1252/Latin-1. Нуль зависимостей — только стандартная библиотека Python.

## Типичная проблема

```
"ue" (U+00FC) -> UTF-8 \xc3\xbc -> read as cp1252 -> "Ã¼"
```

## Использование

### Как библиотека
```python
from encoding_fix import sanitize_outbound

clean = sanitize_outbound("WÃ¼rge")  # -> "Wuerge"
```

### Вывод подпроцесса
```python
from encoding_fix import sanitize_subprocess_output

text = sanitize_subprocess_output(process.stdout)
```

### CLI
```bash
python encoding_fix.py "WÃ¼rge"    # Check a single string
python encoding_fix.py              # Self-test
```

## Возможности

- **Идемпотентность:** Корректно закодированный текст не изменяется
- **До 3 раундов:** Восстанавливает даже строки с тройным кодированием
- **Декодер подпроцессов:** Резервный механизм (fallback) UTF-8/cp1252 для вывода процессов
- **Нуль зависимостей:** Только стандартная библиотека Python

## История изменений

### 1.0.0 (2026-03-12)
- Перенесено из BACH system/tools/encoding_fix.py

