std.file and non-English filename in Windows
Domain
dont_email at empty.com
Mon Jan 1 16:57:40 UTC 2018
On Monday, 1 January 2018 at 16:13:06 UTC, Domain wrote:
> On Monday, 1 January 2018 at 12:33:27 UTC, John Chapman wrote:
>> On Sunday, 31 December 2017 at 18:21:29 UTC, Domain wrote:
>>> In Windows, exists, rename, copy will report file not exists
>>> when you input non-English filename, such as Chinese 中文.txt
>>
>> Works for me. I created a file with the name "中文.txt" and
>> std.file.exists returned true.
>>
>> Is your D source file saved in ASCII by any chance? Try saving
>> it with a different encoding, such as UTF8.
>
> Yes, "中文.txt".exists return true. But when then filename read
> from stdin,
> it return false
>
> stdin
> .byLineCopy(No.keepTerminator)
> .each!((a) { writefln("%s --> %s", a, a.exists); });
>
> dir *.txt /b | test.exe
>
> English.txt --> true
> 中文.txt --> false
Problem solved! I change the properties of cmd from "Raster
Fonts" to "Consolas" and all work well. But I don't know why.
More information about the Digitalmars-d-learn
mailing list