dmd foreach loops throw exceptions on invalid UTF sequences, use replacementDchar instead

FeepingCreature feepingcreature at gmail.com
Mon Nov 15 11:20:04 UTC 2021


On Monday, 15 November 2021 at 08:22:13 UTC, user1234 wrote:
> On Monday, 15 November 2021 at 08:20:57 UTC, user1234 wrote:
>> On Friday, 12 November 2021 at 10:42:15 UTC, kdevel wrote:
>>> This does not yet compile:
>>>
>>>    [...]
>>>           `R = ubyte[]`
>>>      must satisfy one of the following constraints:
>>>    `       isSomeChar!(ElementType!R)
>>>           is(StringTypeOf!R)`
>>
>> auto-decoding or not... you need to decode from whatever is 
>> the OS encoding (must be ancient ANSI I presume ?) to UTF-8.
>
> I meant decode then re-enc to utf

I don't see how that could work. `readText` would need to encode 
it to the OS codepage, but `readText` has no idea what encoding 
you intend. And the encoding of a filename isn't even always 
determined by the locale; consider trying to access filenames 
saved in a different locale, ie. what iconv does. There's no way 
around `readText` taking `ubyte[]`.


More information about the Digitalmars-d mailing list