如何在file_put_contents中保存utf-8(ñ)?

时间:2015-09-29 07:27:39

标签: php utf-8 webcam.js

此代码正常运行。它使用webcam.js保存照片。问题是,当我保存文件名为Peña的文件时,它无法正常工作。我得到了Peña.jpg或Pe?a.jpg文件名的结果。但在数据库中,我做对了(peña)。

问题在于file_put_contents和重命名功能。

 $photoname = $_POST['photoname'];
    $date1 = date('Ymd');
    $photo_file = 'photos/'.$date.'/'.$date."".$photoname.".jpg";
    $encoded_data = $_POST['mydata'];
    $binary_data = base64_decode( $encoded_data );

    if (!is_dir('photos/' . $month)) {
      // dir doesn't exist, make it
      mkdir('photos/' . $month);
    }

    /*get the image */
    $result = file_put_contents($photo_file, $binary_data);

重命名功能(它也可以在没有特殊字符的情况下工作)。

$fname = utf8_decode($_POST['fname']);
$mname = utf8_decode($_POST['mname']);
$lname = utf8_decode($_POST['lname']);

$photo_old = $_POST['photopath'];
$photoname = utf8_decode(strtolower($fname. ''. $mname.''.$lname));
$date1 = date('Ymd');
$month = date('Ymd');
$photo_final = 'photos/'.$month.'/'.$date1."".$photoname.".jpg";
rename($photo_old, $photo_final);

结果:

Warning: rename(photos/20150929/20150929Peña.jpg,photos/20150930/20150930Pe?a.jpg)

0 个答案:

没有答案