[英]Uploading files with korean filename doesn't get stored properly into mysql database
我的上傳腳本似乎沒有正確地將韓文字符存儲到數據庫中。
$file_name = $_FILES['Filedata'][ 'name' ];
$newFileName = time() . "-" . $file_name;
$target = $uploaddir . $newFileName;
$source_file_path = $_FILES['Filedata']['tmp_name'];
if( move_uploaded_file( $source_file_path, $target ) ) {
$sql = "INSERT INTO images(file, album, author) VALUES('".$newFileName."', '".$albumID."', '".$authorID."')";
$result = mysql_query($sql);
if(!$result) {
echo "Could not store into database";
} else {
$sql = "UPDATE albums SET `lastdate` = NOW() WHERE id = '".$albumID."'";
if(mysql_query($sql)) {
echo str_replace($_SERVER['DOCUMENT_ROOT'],'',$target);
} else {
echo mysql_error();
}
}
}
奇怪的是,它使用正確的名稱正確存儲文件,但它將所有不常見的字符添加到數據庫中,如“1321088842-ê°”,“。.jpg”。 數據庫設置為utf8_general_ci
所以我不確定可能是什么問題。 有任何想法嗎?
你需要確保:
如果在過程中的任何地方任何地方都沒有使用UTF-8,那么事情將會變得非常錯誤。
請注意,默認情況下,Web瀏覽器通常不使用UTF-8。 所以你需要包含一個指示它使用utf-8的<meta>
標簽,或者手動設置它們來使用它(在我的瀏覽器中,使用View - > Text Encoding - > UTF-8)。
你的php腳本正在回顯瀏覽器的文件名,但是如果只是回顯沒有<meta>
標簽的文件名,瀏覽器會嘗試將其顯示為其他編碼,也許是latin1。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.