2016-12-23 4 views
0

Я извлекаю путь к файлу изображения из моей базы данных MySQL, и все работает нормально, пока имя пути не имеет связанных с ним символов Unicode. Например, я использую этот код для извлечения пути к файлу изображения;Персонажи из Юникода, правильно извлеченные из MySQL [PHP MYSQL]

$sql = "SELECT images FROM agents"; 
$basePath = "http://localhost/img/"; 
$result = mysqli_query($con, $sql); 
while ($row = mysqli_fetch_array($result)) { 
    $img = $row['images']; 
    $actualPath = $basePath . $img; 
    echo $actualPath; 
} 

Для английского алфавита фотографии, это нормально, это получилось что-то вроде http://localhost/img/selena.jpg, но если это с помощью символов Юникода, это будет как http://localhost/img/11_??.jpg в то время как истинная путь_к_файлу будет http://localhost/img/11_副本.jpg
Как мне сделать, что 副本 символы остаться после того, как он вытащил из MySQL вместо того, чтобы просто стать символом ???

EDIT: Я использовал метод подготовленных операторов, а не базовую команду mysqli_query().

+0

Вы должны проверить набор символов в PHP и mysql и имя сохраненного файла. – Naga

+0

Это отображение как '副本' в вашем db? – Beginner

+0

@Beginner да, поэтому. –

ответ

1

Использовать SET NAMES UTF8 перед вашим запросом для обработки символов Юникода.

mysqli_query($con, 'SET NAMES UTF8'); 

$sql = "SELECT images FROM agents"; 
$basePath = "http://localhost/img/"; 
$result = mysqli_query($con, $sql); 
while ($row = mysqli_fetch_array($result)) { 
    $img = $row['images']; 
    $actualPath = $basePath . $img; 
    echo $actualPath; 
} 
+0

Работает ли это так же, если я использовал подготовленный отчет? –

+0

Теперь он становится 'http: // localhost/img/11_å¯æ¬.jpg', я все еще хочу, чтобы он стал' 副本' –

+0

Можете ли вы опубликовать, как эта ссылка на изображение хранится в БД? – Samir

Смежные вопросы