query('SET NAMES UTF8'); //ch-6ren">
gpt4 book ai didi

apache2 - 上传文件时无法设置正确的字符集

转载 作者:行者123 更新时间:2023-11-29 12:13:24 26 4
gpt4 key购买 nike

请耐心检查此问题

我写了一些简单的 PHP 代码来上传图片。

这是代码(片段)

 <?php

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

//set encoding for prepared statements
$dbh->exec("SET NAMES UTF8");
$dbh->query('SET NAMES UTF8');

//check if file is actually an image etc.

//send image 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();

如果图片的名称是英文的,一切都很好。如果是希腊语,它可以在数据库中保存,但不能保存在文件夹中。在数据库中,我看到了 χωρις τιτλο.jpg(这是正确的),在文件夹 O‡O‰OOΞ―O‚ τίO„Ξ»ΞΛ.jpg 这是错误的。

我已经尝试了所有方法,但无法解决这个问题。在文件夹中获取正确的标题。

数据库(postgreSQL 9.1)编码为UTF8,Collat​​ion和Character Type为Greek_Greece.1235。我保存图像标题的表列中的集合是 pg_catalog."C"

我使用 DreamWeaver。处理上传的文件是一个 php 文件。编码是 utf8,Unicode Normalization Form 是 C,Include Unicode Signature (BOM) 未选中。

区域的默认语言是希腊语,控制面板的语言是默认语言。 (Windows 7 家庭高级版)

浏览器编码为utf8

我还使用 Apache 2.2.22。这是 Apache 的错吗?还是它的 php 文件?还是数据库?

我不知道还能做什么...我错过了什么?求求指教

最佳答案

这似乎是一个 StackOverflow 问题,与 ServerFault 无关。但是,您应该看看这篇文章:

以 UTF-8 命名文件:

Can a PHP file name (or a dir in its full path) have UTF-8 characters?

以 UTF-8 格式写入文件:

How to write file in UTF-8 format?

关于apache2 - 上传文件时无法设置正确的字符集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19005818/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com