Intereting Posts
Вход с 2 различными таблицами в Symfony2 PHP DOMElement :: getElementsByTagName – В любом случае, чтобы получить сразу же подходящих детей? Внедрение SecurityContext в прослушиватель prePersist или preUpdate в Symfony2, чтобы получить пользователя в созданномBy или updatedBy вызывает ошибку круговой ссылки Требовать Java-код similler для скрипта шифрования php ИСПОЛЬЗОВАНИЕ if заявление не работает, как должно перегруппировка ключей массива php Можно ли изменить переменную $ _SESSION на стороне клиента? Невозможно использовать строковое смещение в виде массива в php Получить идентификатор видео Youtube из html-кода с помощью PHP Вставить PHP-код в WordPress Страница и сообщение Атака XSS для обхода функции htmlspecialchars () в атрибуте value Zend Framework дополнительно Получить параметры с помощью NGINX Понимание файлов cookie в PHP Вставьте значение флажка в mysql с помощью codeigniter Как отключить mod_security в файле .htaccess?

установить кодировку при сохранении файлов с помощью php

Я создал простой код для загрузки изображений в папку с PHP.

На стороне сервера у меня есть

<?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», а в базе данных также «upload / myImage01.jpg». Но, если имя изображения находится в греческом языке в папке, я вижу «Ο ‡ Ο ‰ ΟΞ-Ο, Ο« Ξ-Ο »Ξ» ΞΏ.jpg »и в db« upload / Ο ‡ Ο ‰ ΟΞ- Ο, Ο "Ξ-Ο" Ξ »ΞΏ.jpg". Это неправильно. Insted of Ο ‡ Ο ‰ ΟΞ-Ο, Ο «Ξ-Ο» Ξ »ΞΏ Я должен получить« χωρις τιτλο »(это грек для« без названия »кстати). Итак, я думаю, проблема с кодировкой?

Как это исправить?

заранее спасибо

Solutions Collecting From Web of "установить кодировку при сохранении файлов с помощью php"

Похоже, что в вашей базе данных нет правильной сортировки. Убедитесь, что таблицы / столбцы используют 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 сохранены правильно.

Наконец, я понял, что «функции файловой системы PHP могут обрабатывать только символы, которые находятся в системной кодовой странице». Благодаря этому я решаю свою проблему.

Я использовал функцию iconv

Поэтому я изменил строку move_uploaded_file так

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