請耐心等待並檢查此問題。上傳文件時無法設置正確的字符集
我寫了一些簡單的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
(這是正確的)和文件夾χωΟΞ―Ο‚ τίτλο.jpg
,這是錯誤的。
我試過一切,無法解決這個問題。在文件夾中獲得正確的標題。
數據庫(postgreSQL 9.1)的編碼是UTF8,整理和字符類型是Greek_Greece.1235
。我保存圖片標題的表格列中的拼貼是pg_catalog."C"
。
我使用DreamWeaver。處理上傳的文件是一個php文件。編碼是utf8,Unicode標準化表單是C,包括Unicode簽名(BOM)未選中。
控制面板中的區域和語言中的默認語言爲希臘語。 (Windows 7家庭高級版)
瀏覽器的編碼是UTF8
我也使用Apache 2.2.22。這是Apache的錯嗎?或者它的PHP文件?還是數據庫?
我不知道還有什麼辦法......我錯過了什麼?請請請諮詢
http://www.php.net/manual/en/book.mbstring.php – nandoP