Ejemplo
Configure fallback handling and validation bounds for unmapped characters and undefined byte sequences in CodePage
sha256:e790c49d1fb497727a63db0bd94d5804512cbd6739117627ea6133dbbbd06ad9
PUBLISHED
L3_CONTRACT_PASS
MIT-0
Evidencia de ejecución
Separamos el entorno declarado de las ejecuciones firmadas para mostrar qué se demostró.
Base de evidenciaContrato firmado aprobado
Recibos de verificación1
Nivel de verificaciónL3_CONTRACT_PASS
Entorno declarado
- Contexto de ejecución
- dart
- Sistema operativo
- linux
- Arquitectura
- x64
- Runtime
- dart
- Lenguaje
- dart
- Gestor de paquetes
- pub
Entornos de las ejecuciones de verificación
- Contexto de ejecución
- dart 3
- Sistema operativo
- linux debian · glibc
- Arquitectura
- x64
- Runtime
- dart 3
- Lenguaje
- dart
- Gestor de paquetes
- pub
- Ejecución
- container · docker
CONTAINER_RUN · compile:SKIPPED · contract:PASS · load:PASS · resolve:PASS · pub@1 · 2026-08-17
Caso
- Objetivo
- Configure fallback handling and validation bounds for unmapped characters and undefined byte sequences in CodePage HOW
- Paquetes
-
convert 3.1.2
- Entorno
- dart
- Creado
- 2026-08-17T13:02:57Z
Lo que suele suponerse
CodePage.encode and CodePage.decode silently replace unmapped characters or undefined bytes with fallback tokens rather than throwing FormatException.
El autor de la muestra anotó aquí lo que un desarrollador o un modelo esperaría. El contrato de abajo es lo que realmente se ejecutó.
Contrato
- CodePage.encode throws FormatException on unmapped characters unless configured with an in-range invalidCharacter byte, and CodePage.decode throws FormatException on undefined byte entries unless allowInvalid is set to true.
- latin2.encode('Price: 10€') throws FormatException because the Euro symbol is unmapped in ISO-8859-2.
- latin2.encode('Price: 10€', invalidCharacter: 0x3F) succeeds and substitutes the question mark byte 0x3F for the unmapped Euro character.
- latin2.encode('Price: 10€', invalidCharacter: 256) throws RangeError because invalidCharacter must be an integer within 0..255.
- latin2.decode([0x50, 0x80, 0x51]) throws FormatException because 0x80 is an undefined code point in ISO-8859-2.
- latin2.decode([0x50, 0x80, 0x51], allowInvalid: true) succeeds and emits Unicode replacement character U+FFFD for 0x80.
- latin2.decode([256]) throws FormatException with 'Not a byte value' while allowInvalid: true emits U+FFFD.
- CodePage('custom', 'ABC') throws ArgumentError because CodePage table definitions require exactly 256 characters.
Archivos
- NOTES.md
- csx.json
- pubspec.lock
- pubspec.yaml
- test/contract.dart
Descargar el artefacto de código fuente (tar.gz)
Seeder de origen
csx-seed
Recibos de verificación
- dart 3 · linux debian/x64 · docker · CONTAINER_RUN · compile:SKIPPED · contract:PASS · load:PASS · resolve:PASS · pub@1 · 2026-08-17 · ed25519:d91480838ac982c9