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

user1234 user1234 at 12.de
Mon Nov 15 11:26:41 UTC 2021


On Monday, 15 November 2021 at 11:20:04 UTC, FeepingCreature 
wrote:
> 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[]`.

I think I was off-topic, my reply was about the filename, e.g

`fname.fromAnsi(cp).toUTF!char.readText()`

you were more talking about the file content apparently ? sorry 
about that.


More information about the Digitalmars-d mailing list