shFileoperation和德国Umlaute

时间:2018-04-15 00:41:30

标签: winapi lazarus

我有这个功能。

procedure DeleteToBin(filename:string);
var
fileOpStruct : TSHFileOpStruct;
filename_a :ansistring;
begin
  filename_a := filename + #0#0;
  //showmessage(filename_a);
  fileOpStruct.Wnd := Application.MainFormHandle;
  fileOpStruct.wFunc := FO_DELETE;
  fileOpStruct.pFrom := PAnsiChar(filename_a); 
  fileOpStruct.fFlags := FOF_ALLOWUNDO + FOF_NOCONFIRMATION;
  SHFileOperation( fileOpStruct );
end;

它适用于普通路径和文件,例如:C:\mypath\myfile.ext。但是,一旦我处理包括德语Umlaute在内的文件,它就会失败,例如:C:\mypööö\myfileüüü.ext

我尝试了我能想到的每一次转换(如UTFtoANSI),但没有达到预期的效果。 顺便说一句:showmessage显示正确可读的德语文件名。

使其运作需要什么样的转换?

1 个答案:

答案 0 :(得分:-2)

感谢Remy和David以及utf8Decode我以这种方式运行: (编辑2018-04-17)

Virtual Private Server