BUG UnicodeReplacementConverter writes characters outside the BMP as invalid five-digit \u escapes
I maintainer di solito rispondono entro 2 giorni
Valutazione
- Difficoltà
- 2/5
- Tempo stimato
- 1-3 ore
- Idoneità per principianti
- 78/100
Direzione di ricerca
Leggi UnicodeReplacementConverter e confrontane l’output con quello di JsonStringConverter, che secondo l’issue emette già la coppia surrogata prevista. Riproduci il comportamento con lo snippet Python fornito usando un’emoji e conferma che i caratteri BMP mantengano l’output attuale. Il lavoro è completato quando i caratteri fuori dal BMP sono rappresentati come coppie surrogate UTF-16 valide e la riproduzione viene decodificata nel testo originale.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Describe the bug
UnicodeReplacementConverter formats each character as \u{ord(ch):04x}. :04x is a minimum width, so a character outside the Basic Multilingual Plane (emoji, many CJK extension characters, math alphanumerics) gets five or six hex digits. A \u escape holds exactly four in JSON, JavaScript, Java and Python, so the output decodes to a different character followed by a stray digit.
To Reproduce
import asyncio, json
from pyrit.converter import UnicodeReplacementConverter
out = asyncio.run(UnicodeReplacementConverter().convert_async(prompt="hi 😀")).output_text
print(out) # hi ὠ0
print(json.loads(f'"{out}"')) # hi ὠ0
Expected behavior
😀 is written as its UTF-16 surrogate pair, 😀, which is what JsonStringConverter already emits for the same character. BMP characters keep their current output.
Version
main at 60c3386a, Python 3.11, Windows.
- Lingua principale
- Python
- Stelle
- 4.6k
- Fork
- 944
- Merge medio
- 3g 1h
- PR unite (30g)
- 278
Preparare l'ambiente
Avvia il container di sviluppo del progetto nel browser, con il tuo account GitHub.
- Nessun Dockerfile né file Docker Compose
- Ha un modello di pull request
- Nessuna guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di microsoft/PyRIT
-
BUG ColloquialWordswapConverter skips words next to punctuation and inserts spaces into hyphenated wordsForse già presa @ShivamSharma43 l’ha presa oggi. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
I maintainer di solito rispondono entro 2 giorni
-
BUG: label queries only return the final conversation of an attackForse già presa @richlundeen l’ha presa 1 giorno fa. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 85/100
microsoft/PyRIT#3095 · 1 commento · 1 assegnatario ·
I maintainer di solito rispondono entro 2 giorni
-
BUG PuzzledConverter cannot select words carrying non-ASCII letters, so the mask falls on articles insteadForse già presa @adimalkar l’ha presa 2 giorni fa. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 74/100
microsoft/PyRIT#3022 · 4 commenti ·
I maintainer di solito rispondono entro 2 giorni
-
BUG Configuration keeps runtime-status errors after polling recoversForse già presa @joeyvictorino l’ha presa oggi. ApertaBug: triage GUI help wanted
Difficoltà 2/5 1-3 ore Idoneità per principianti 86/100
microsoft/PyRIT#2868 · 4 commenti · 1 assegnatario ·
I maintainer di solito rispondono entro 2 giorni
-
BUG TokenBijectionConverter cannot represent a literal hyphen, so "e-mail" encodes identically to "email" and decodes without the hyphenForse già presa @kushaltalati l’ha presa oggi. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 52/100
microsoft/PyRIT#3128 · 1 commento ·
I maintainer di solito rispondono entro 2 giorni
Tutte le issue di microsoft/PyRIT
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 74/100
vllm-project/vllm#61131 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
kubernetes-client/python#2735 ·
I maintainer di solito rispondono entro 1 giorno
-
desktop help wanted test
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
I maintainer di solito rispondono entro 1 giorno
-
Broken links found in docsApertadocs pydanty:is-working
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
pydantic/pydantic-ai#10113 ·
I maintainer di solito rispondono entro 1 giorno
-
Tutorial unit test leaks sample data into tutorial doctestForse già presa @Gambit-Checkmate l’ha presa oggi. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 84/100