Parsing a UTF-16LE file line by line, BUG?

Mike Wey via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Fri Jan 6 03:42:17 PST 2017


On 01/06/2017 11:33 AM, pineapple wrote:
> On Friday, 6 January 2017 at 06:24:12 UTC, rumbu wrote:
>>>
>>> I'm not sure if this works quite as intended, but I was at least able
>>> to produce a UTF-16 decode error rather than a UTF-8 decode error by
>>> setting the file orientation before reading it.
>>>
>>>     import std.stdio;
>>>     import core.stdc.wchar_ : fwide;
>>>     void main(){
>>>         auto file = File("UTF-16LE encoded file.txt");
>>>         fwide(file.getFP(), 1);
>>>         foreach(line; file.byLine){
>>>             writeln(file.readln);
>>>         }
>>>     }
>>
>> fwide is not implemented in Windows:
>> https://msdn.microsoft.com/en-us/library/aa985619.aspx
>
> That's odd. It was on Windows 7 64-bit that I put together and tested
> that example, and calling fwide definitely had an effect on program
> behavior.

Are you compiling a 32bit binary? Because in that case you would be 
using the digital mars c runtime which might have an implementation for 
fwide.

-- 
Mike Wey


More information about the Digitalmars-d-learn mailing list