php - 使用php保存文件时设置字符集

  显示原文与译文双语对照的内容
0 0

我创建了一个简单的代码,用于将图片上传到。

在服务器端


 <?php

 header('Content-Type: text/plain; charset=utf-8');

//check if file is actually an image etc.

//if is an image, send it to"upload" folder
 move_uploaded_file($_FILES["file"]["tmp_name"],"upload/". $_FILES["file"]["name"]);

//save to the database a string like"upload/myImage.jpg", so I can render it on the site later
$stu = $dbh->prepare("UPDATE multi SET m_place=:name WHERE m_id = :id");
$stu->bindParam(':name', $n, PDO::PARAM_STR);
$n="upload/".$_FILES["file"]["name"]; 
$stu->execute();

这个问题?

如果图像的名称在文件夹中,我看到" myimage01.jpg"和数据库中的"上传/myimage01.jpg"。 所以我想问题是?

如何修复这里问题?

先谢谢了

时间: 原作者:

0 0

听起来你的数据库没有正确的排序规则。 确保表/列在排序规则中使用 utf8_general_ci

当处理UTF8时,同样重要的是使用下面两个MySQL行来请求 GET 请求- - 。


SET time_zone = '+00:00'
SET CHARACTER SET 'utf8'

。当你有一个 POST 请求时,使用下面两个。


SET time_zone = '+00:00'
SET NAMES 'utf8'

这些将有助于确保正确维护UTF8字符。

原作者:
0 0

最后我想出"php 文件系统 函数只能处理系统代码页中的字符"。 感谢 ,我解决了我的问题。

我使用了 iconv 函数

所以我就像这样改变了 move_uploaded_file 线


move_uploaded_file($_FILES["file"]["tmp_name"],"upload/". iconv('UTF-8', 'Windows1253',$_FILES["file"]["name"]));

原作者:
...