# Bug Report: Project File Upload Corrupts UTF-8 Encoding (cp1252 Double-Encoding) **Product:** Claude.ai (web interface)

Resolved 💬 1 comment Opened Feb 8, 2026 by scottpete Closed Feb 8, 2026

Bug Description
Bug: Project file upload corrupts UTF-8 encoding via cp1252 double-encoding

When uploading UTF-8 encoded files to a Claude.ai Project, all non-ASCII bytes are silently corrupted. The upload pipeline decodes files as Windows-1252 (cp1252) instead of UTF-8, then re-encodes to UTF-8. This produces mojibake that corrupts emojis, em dashes, curly quotes, accented characters, and any other non-ASCII content.

Reproduction: Upload a Python file containing a UTF-8 emoji (e.g. print("🔒 Locked")) to a Claude.ai Project. Ask Claude to inspect the bytes using computer tools. The emoji bytes f0 9f 94 92 have become c3 b0 c5 b8 e2 80 9d e2 80 99 — the classic cp1252 double-encoding pattern.

Verified: Local file confirmed clean UTF-8 (f0 9f 94 92). Same file in /mnt/project/ after upload shows cp1252 double-encoded bytes. Corruption is introduced during upload/ingestion, not by the user.

Impact: Every project file upload containing non-ASCII characters is silently corrupted. No warning is shown. Files with emojis in print statements become syntactically valid but produce garbled output. Source code that passes through Claude for editing inherits the corruption.

Expected: The upload pipeline should detect and preserve UTF-8 encoding rather than assuming cp1252.

Environment Info

  • Platform: darwin
  • Terminal: Apple_Terminal
  • Version: 2.1.37
  • Feedback ID: a6c82879-e0be-425b-aeac-c42322357e59

Errors

[]

View original on GitHub ↗

This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗