title: Lazarus ListBox SaveToFile File Name with special characters
body: <p>I'm writing an application with Lazarus (1.5) fpc (3.1.1) targeting Windows XP/7/10. 
  My Application read and write files in filesystem in some path choosed by users.  If path or filename contain special chars (like à è é) for example:</p>
  
  <p>C:\Users\DeAndrè\out.txt</p>
  
  <p>Application raise the exception:</p>
  
  <blockquote>
    <p>'EFCreateError' Unable to create file "C:\Users\DeAndrè\out.txt".</p>
  </blockquote>
  
  <p>Is possible to reproduce this issue writing a simple application with a sigle form: 
  Drag into the form a TListBox (ListBox1), two TButton (Button1 and Button2) and a TSaveDialog (SaveDialog1).</p>
  
  <p>In the OnClick event of Button1 (used only to write some data on ListBox1):</p>
  
  <pre><code>procedure TForm1.Button1Click(Sender: TObject);
  begin
    // Simple Add Hello to ListBox
    ListBox1.Items.Add('Hello '+IntToStr(ListBox1.Items.Count));
  end; 
  </code></pre>
  
  <p>In OnClick event of Button2:</p>
  
  <pre><code>procedure TForm1.Button2Click(Sender: TObject);
  begin
    if SaveDialog1.Execute then
    begin
      ListBox1.Items.SaveToFile(SaveDialog1.FileName);
    end;
  end;  
  </code></pre>
  
  <p>Run the application and click "Button1" some times (just for add some words in the List) then click on Button2 and try to save content to a path containing special characters...</p>
  
  <p>I have noticed that if I convert FileName with function UTF8ToAnsi it work, but why? Windows FileSystem isn't UTF8?</p>
  
  <p>There is "standard" a solution? for example setting the application to use filesystem in correct mode or similar?</p>
  
  <p>Thank you</p>