Hacktoberfest 2026: những issue maintainer đã đánh dấu cho tháng Mười, đang mở và phù hợp người mới. Xem issue Hacktoberfest

fix(planning): write share.py output as UTF-8 so Windows pipes don't crash on non-cp1252 text

Đang mở Phù hợp với người mới
#8,239 1 bình luận 0 reaction 0 người được giao Xem trên GitHub

Maintainer thường phản hồi trong vòng 1 ngày

Chưa có ai nhận issue này.

Đánh giá

Độ khó
2/5
Thời gian dự kiến
1-3 giờ
Mức phù hợp với người mới
78/100
Loại issue
Lỗi
Độ rõ ràng
Đặc tả rõ ràng
Mức độ hoạt động
Sôi nổi
Công nghệ
python, shell
Lĩnh vực
cli, testing

Hướng nghiên cứu

Bắt đầu với plugins/planning/shared/share.py và các kiểm thử subprocess tương ứng; issue nêu vấn đề mã hóa stdout và stderr, cùng các lần đọc phụ thuộc vào locale trong kiểm thử. Tái hiện bằng PYTHONIOENCODING=cp1252 và một dòng log chứa ký tự như →, sau đó kiểm tra đầu ra của logs và logs --summary. Hoàn tất khi cả hai lệnh chạy thành công và giữ nguyên ký tự dưới dạng UTF-8; xác minh trên lane pr-test-windows.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Mô tả

priority: medium

Refs: #7670

Summary

On Windows, share.sh output crashes on a character cp1252 cannot encode, such as an emoji in a name or chat-derived log line, or →. It happens when stdout is a pipe (a terminal pipe, the interview skill reading the output, a test).

Cause

plugins/planning/shared/share.py prints its JSON with ensure_ascii=False, and the logs --summary text as-is. When stdout is a pipe on Windows, Python encodes it in the ANSI code page (cp1252), and an unencodable character raises UnicodeEncodeError. share.sh runs Python with -I, which ignores PYTHONUTF8. Reproduced on Linux with PYTHONIOENCODING=cp1252 and a → in a log line.

Fix

Make share.py write UTF-8 on stdout and stderr explicitly (sys.stdout.reconfigure(encoding="utf-8")), and have the tests and the skill read share.py's output as UTF-8 rather than with the locale default. Verify on the pr-test-windows lane.

Verification

A subprocess test that sets PYTHONIOENCODING=cp1252, logs a line with a non-cp1252 character, and gets exit 0 from share.py logs and logs --summary, with the character intact in UTF-8.

Ngôn ngữ chính
Shell
Star
22
Fork
2
Merge trung bình
8 giờ 44 phút
Pull request đã merge (30 ngày)
926

Chuẩn bị môi trường

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của melodic-software/claude-code-plugins

Tất cả issue của melodic-software/claude-code-plugins

Issue tương tự

Thêm issue về Shell/Bash

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.