Commit 94de146
Add UTF8Mode with Strict, Loose, and Replace options
Introduced `UTF8Mode` enum to control invalid UTF-8 sequence handling:
- `UTF8Replace` (default): Replaces invalid bytes with `\uFFFD`.
- `UTF8Strict`: Returns an error.
- `UTF8Ignore`: Preserves invalid bytes as-is.
Added `OptionStrict` (sets `UTF8Strict`) and `OptionLoose` (sets `UTF8Ignore`).
Refactored `upperCaseFirstLower` to respect these modes.
Added comprehensive tests for all modes.
Co-authored-by: arran4 <111667+arran4@users.noreply.github.com>1 parent 47c0289 commit 94de146
3 files changed
Lines changed: 130 additions & 33 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
37 | 37 | | |
38 | 38 | | |
39 | 39 | | |
40 | | - | |
| 40 | + | |
41 | 41 | | |
42 | 42 | | |
43 | 43 | | |
| |||
122 | 122 | | |
123 | 123 | | |
124 | 124 | | |
125 | | - | |
| 125 | + | |
126 | 126 | | |
127 | 127 | | |
128 | 128 | | |
129 | 129 | | |
130 | | - | |
131 | | - | |
| 130 | + | |
| 131 | + | |
| 132 | + | |
| 133 | + | |
132 | 134 | | |
| 135 | + | |
133 | 136 | | |
134 | 137 | | |
135 | 138 | | |
136 | 139 | | |
137 | 140 | | |
138 | 141 | | |
139 | | - | |
| 142 | + | |
140 | 143 | | |
141 | 144 | | |
142 | | - | |
143 | | - | |
| 145 | + | |
| 146 | + | |
| 147 | + | |
| 148 | + | |
144 | 149 | | |
145 | 150 | | |
146 | 151 | | |
| |||
155 | 160 | | |
156 | 161 | | |
157 | 162 | | |
158 | | - | |
159 | | - | |
160 | | - | |
161 | | - | |
| 163 | + | |
| 164 | + | |
| 165 | + | |
| 166 | + | |
| 167 | + | |
| 168 | + | |
| 169 | + | |
| 170 | + | |
| 171 | + | |
| 172 | + | |
| 173 | + | |
| 174 | + | |
| 175 | + | |
| 176 | + | |
| 177 | + | |
| 178 | + | |
| 179 | + | |
| 180 | + | |
| 181 | + | |
162 | 182 | | |
163 | 183 | | |
164 | 184 | | |
| |||
188 | 208 | | |
189 | 209 | | |
190 | 210 | | |
| 211 | + | |
| 212 | + | |
| 213 | + | |
| 214 | + | |
| 215 | + | |
| 216 | + | |
| 217 | + | |
| 218 | + | |
| 219 | + | |
| 220 | + | |
| 221 | + | |
| 222 | + | |
191 | 223 | | |
192 | 224 | | |
193 | 225 | | |
| |||
199 | 231 | | |
200 | 232 | | |
201 | 233 | | |
202 | | - | |
| 234 | + | |
203 | 235 | | |
204 | 236 | | |
205 | 237 | | |
| |||
234 | 266 | | |
235 | 267 | | |
236 | 268 | | |
237 | | - | |
| 269 | + | |
| 270 | + | |
| 271 | + | |
| 272 | + | |
| 273 | + | |
| 274 | + | |
238 | 275 | | |
239 | 276 | | |
240 | 277 | | |
| |||
285 | 322 | | |
286 | 323 | | |
287 | 324 | | |
288 | | - | |
| 325 | + | |
289 | 326 | | |
290 | 327 | | |
291 | 328 | | |
| |||
304 | 341 | | |
305 | 342 | | |
306 | 343 | | |
307 | | - | |
| 344 | + | |
308 | 345 | | |
309 | 346 | | |
310 | 347 | | |
| |||
324 | 361 | | |
325 | 362 | | |
326 | 363 | | |
327 | | - | |
| 364 | + | |
328 | 365 | | |
329 | 366 | | |
330 | 367 | | |
| |||
337 | 374 | | |
338 | 375 | | |
339 | 376 | | |
340 | | - | |
| 377 | + | |
341 | 378 | | |
342 | 379 | | |
343 | 380 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
75 | 75 | | |
76 | 76 | | |
77 | 77 | | |
78 | | - | |
| 78 | + | |
79 | 79 | | |
80 | | - | |
| 80 | + | |
81 | 81 | | |
82 | 82 | | |
83 | 83 | | |
| |||
116 | 116 | | |
117 | 117 | | |
118 | 118 | | |
119 | | - | |
| 119 | + | |
120 | 120 | | |
121 | 121 | | |
122 | | - | |
| 122 | + | |
123 | 123 | | |
124 | 124 | | |
125 | | - | |
| 125 | + | |
126 | 126 | | |
127 | 127 | | |
128 | 128 | | |
129 | | - | |
| 129 | + | |
130 | 130 | | |
131 | 131 | | |
132 | 132 | | |
133 | 133 | | |
134 | 134 | | |
135 | 135 | | |
| 136 | + | |
| 137 | + | |
| 138 | + | |
| 139 | + | |
| 140 | + | |
| 141 | + | |
| 142 | + | |
| 143 | + | |
| 144 | + | |
| 145 | + | |
| 146 | + | |
| 147 | + | |
| 148 | + | |
| 149 | + | |
| 150 | + | |
| 151 | + | |
| 152 | + | |
| 153 | + | |
| 154 | + | |
| 155 | + | |
| 156 | + | |
| 157 | + | |
| 158 | + | |
| 159 | + | |
| 160 | + | |
| 161 | + | |
| 162 | + | |
| 163 | + | |
| 164 | + | |
| 165 | + | |
| 166 | + | |
| 167 | + | |
| 168 | + | |
| 169 | + | |
| 170 | + | |
| 171 | + | |
| 172 | + | |
| 173 | + | |
| 174 | + | |
| 175 | + | |
| 176 | + | |
| 177 | + | |
| 178 | + | |
| 179 | + | |
| 180 | + | |
136 | 181 | | |
137 | 182 | | |
138 | 183 | | |
139 | 184 | | |
140 | | - | |
| 185 | + | |
141 | 186 | | |
142 | 187 | | |
143 | 188 | | |
144 | 189 | | |
145 | 190 | | |
146 | 191 | | |
147 | 192 | | |
148 | | - | |
| 193 | + | |
149 | 194 | | |
150 | 195 | | |
151 | 196 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
455 | 455 | | |
456 | 456 | | |
457 | 457 | | |
458 | | - | |
| 458 | + | |
459 | 459 | | |
460 | 460 | | |
461 | 461 | | |
462 | 462 | | |
463 | 463 | | |
| 464 | + | |
464 | 465 | | |
465 | 466 | | |
466 | | - | |
| 467 | + | |
467 | 468 | | |
468 | 469 | | |
469 | 470 | | |
470 | 471 | | |
471 | 472 | | |
472 | 473 | | |
473 | 474 | | |
474 | | - | |
| 475 | + | |
475 | 476 | | |
476 | 477 | | |
477 | 478 | | |
478 | | - | |
| 479 | + | |
479 | 480 | | |
| 481 | + | |
480 | 482 | | |
481 | 483 | | |
482 | | - | |
| 484 | + | |
| 485 | + | |
| 486 | + | |
| 487 | + | |
| 488 | + | |
| 489 | + | |
| 490 | + | |
| 491 | + | |
| 492 | + | |
| 493 | + | |
483 | 494 | | |
484 | 495 | | |
485 | 496 | | |
486 | 497 | | |
487 | 498 | | |
488 | 499 | | |
489 | 500 | | |
490 | | - | |
| 501 | + | |
491 | 502 | | |
492 | 503 | | |
493 | 504 | | |
494 | | - | |
| 505 | + | |
495 | 506 | | |
| 507 | + | |
496 | 508 | | |
497 | 509 | | |
498 | 510 | | |
499 | 511 | | |
500 | 512 | | |
501 | | - | |
| 513 | + | |
502 | 514 | | |
503 | 515 | | |
504 | 516 | | |
| |||
510 | 522 | | |
511 | 523 | | |
512 | 524 | | |
| 525 | + | |
| 526 | + | |
| 527 | + | |
513 | 528 | | |
514 | 529 | | |
515 | 530 | | |
| |||
0 commit comments