Log in

View Full Version : Problem: Avisynth and Windows 10 unicode filenames support


belonesox
29th April 2016, 12:48
I have problem with non-ANSI filenames and AVISynth (latest, 2.60, 2016-05-31)

In attached test-unicode-avisynth.zip
simple "Тест.avs" script with "Version()".

But


chcp 1251
ffmpeg -i Тест.avs



[avisynth @ 04f336a0] Import: unable to locate "Тест.avs" (try specifying a path), error=0x2
Тест.avs: Unknown error occurred



Also failed with VirtualDub.

---------------------------
VirtualDub Error
---------------------------
Avisynth open failure:
Import: couldn't open "G:\release\????.avs"
---------------------------
ОК
---------------------------


May be some hacking workaround exists to
make AVISynth work with such files?

Any ideas?
(Without this a lot of my workflows dropped when I switch from Win7 to Win10)

stax76
29th April 2016, 13:28
AviSynth never supported Unicode, a AviSynth+ core developer stated this week that it's very difficult to implement without breaking backward compatibility.

The reason it was never implemented is due to lack of popular demand, apparently ANSI is sufficient in most countries, isn't Russian fully covered by ANSI? I thought it is.

VapourSynth has no problem with Unicode, interestingly Python which VapourSynth uses had breaking changes between version 2 and 3 and one of these breaking changes is related to Unicode I believe. I implemented Unicode support using VapourSynth this week in StaxRip, test build is online.

belonesox
29th April 2016, 13:36
Yes, I am just trying to work with Russian filenames, I did not care specifycally about Unicode or ANSI encoding.

But on Win7 same NTFS filenames (probably in Windows-1251) works OK with AVISynth, on Win10 Avisynth refused to open it.

pie
29th April 2016, 14:30
If you don't want to rename your files, passing the short filename should work.

E.g.

for %f in ("Тест.avs") do echo %~sf

OR

for %f in ("Тест.avs") do ffmpeg -i %~sf


Heh... this was one of the workarounds that was needed in Java too...