gpt4 book ai didi

php - Mac和Windows上传文件名编码不同的问题

转载 作者:行者123 更新时间:2023-11-29 09:36:42 25 4
gpt4 key购买 nike

从 Mac 上传文件与从 Windows 计算机上传文件时,php 中的 $_FILES['file'] 全局变量的编码不同。

我正在新更新的 Debian/Apache2 上使用 PHP7 开发一个脚本。它在更新之前可以工作,但现在无法从 Mac 上传文件。

该脚本用于接收上传文件,并将文件名存储在数据库(MariaDB/mySql)中

$filename = "$_FILES['files']";
$sql = "INSERT INTO upload_files (filename) VALUES ('$filename')";

当文件名包含非 ASCII 字符(例如 æøå)时,从 Windows 计算机上传文件时会正确执行此查询。但是从Mac上传文件时,编码不同,查询失败:

#1366 - Incorrect string value '\xCC\x8A...' for column filename....

最佳答案

十六进制CC8A是utf8,表示“COMBINING RING ABOVE”。也许接下来有一个元音?

也许某些东西默认为 latin1 或其他一些非 utf8 编码。很难说是什么,因为它是一个文件名,而不是表中的数据。

十六进制C385Å的utf8,相当于41CC8A,即A加一个环。如果您要使用前者,它可以(如果适用)转换为 latin1 字符。

关于php - Mac和Windows上传文件名编码不同的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57475937/

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