在html,php邮件和文本中正确显示重音字符

I have an HTML5 form collecting personal data. The output from the form is passed to a php/HTML file which does three things with it.

  1. It creates and displays a new HTML5 table re-displaying all of the received data for visual confirmation.
  2. It creates and sends an email (using the PHP mail() function) with some of the input data.
  3. It uses all of the input data to create and add a line to a text (csv) file.

HTML5 files all use <html lang="en"> and <meta charset="utf-8">.

My problem is that everything works nicely – until an accented character is input into the initial form. Say ö, É or something like that – as happens with the occasional person’s name. Whilst such characters display properly in the HTML confirmation table, they become garbled in the email and the csv file – typically ö becomes ö.

I have searched through other similar questions and their answers, but find nothing that provides satisfactory answers – especially the part regarding the creation of a text file.

Any suggestions?