在写入文件时保留特殊字符


Keep special chars when writing to file

我创建了一个包含表单的网站。提交时,文本将打印到.csv文件中。问题是,像ÅõÖ这样的字母被打印成"â¥"或"â"。我能做些什么来保存这些信?

<?php
   $fname = $_POST['fname'];
   $lname = $_POST['lname'];
   $file = "register.csv";  
   $person = $fname.';'. $lname."'n";   
   file_put_contents($file, $person, FILE_APPEND | LOCK_EX);
?>

最有可能的问题是读取文件。PHP脚本应该以接收信件的方式存储信件。如果您使用Excel读取CSV文件,默认情况下编码为非utf。您应该用一些文本编辑器检查您的文件(或者先将其导入excel设置编码),并确保文件以utf-8打开。

尝试添加UTF-8 BOM:

file_put_contents($myFile, "'xEF'xBB'xBF".  $content, FILE_APPEND | LOCK_EX);