wavebvg
Проблема в том, что FPC RTL на разных платформах работает с родными кодировками, обычно это UTF-8 под Linux и cp1251 под Windows. Поэтому при вызове функций из RTL нужно преобразовывать внутреннюю кодировку LCL (UTF-8) к кодировке RTL на данной платформе, с помощью UTF8ToSys/SysToUTF8 (из модуля FileUtil). Под Linux эти кодировки совпадают, поэтому все работает.
Еще можно использовать файловые функции из FileUtil, работающие с UTF-8, например FindFirstUTF8, GetCurrentDirUTF8 и т.п.
Проблема может быть по-настоящему решена только после поддержки Unicode-строк в самом FPC, релиз Lazarus не сможет ее исправить. А пока остается помнить о различиях кодировок и UTF8ToSys/SysToUTF8.