github / github/copilot-cli

OSC 52 clipboard write stores raw UTF-8 bytes, causing CJK characters when pasted on Windows/WSL

Aperta
#3,062 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub
area:input-keyboard area:platform-windows area:terminal-rendering
Lingua principale
Shell
Stelle
11.2k
Fork
1.9k
Merge medio
14h 16m
PR unite (30g)
6

Descrizione

Copilot CLI writes shell commands to the clipboard via OSC 52 when rendering responses. On Windows Terminal + WSL, the OSC 52 content is stored as raw UTF-8 bytes rather than UTF-16LE. When pasting, Windows interprets the bytes as UTF-16LE, producing CJK characters.

Steps to reproduce:

1. Run Copilot CLI in WSL via Windows Terminal
2. Ask for a command (e.g. sudo apt install libsecret-tools gnome-keyring)
3. Select 30+ characters from the command and Ctrl+C
4. Paste anywhere

Expected: sudo apt install libsecret-tools gnome-keyring
Actual: 畳潤愠瑰椠獮慴汬氠扩敳牣瑥琭潯獬朠潮敭欭祥楲杮

Evidence:

- [System.Windows.Forms.Clipboard]::GetText() always returns the full 46-byte command as 23 UTF-16LE code points, regardless of actual selection length
- No hidden/control characters present — pure ASCII bytes misread as UTF-16LE pairs
- Selecting fewer than 30 characters works correctly (selection stays within OSC 52 boundary)
- Copying the same string from Notepad works correctly

Environment:

- Windows 11, Windows Terminal (latest), WSL Ubuntu
- $LANG=C.UTF-8, system locale: German (Germany)

Workaround: Use /copy slash command instead of manual selection

Guida per i contributori

Apri la guida per i contributori

Valutazione

Questa issue non è ancora stata valutata.

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.