作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
从 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/
我有以下正则表达式 /[a-zA-Z0-9_-]/ 当字符串只包含从 a 到z 大小写、数字、_ 和 -。 我的代码有什么问题? 能否请您向我提供一个简短的解释和有关如何修复它的代码示例? //var
我是一名优秀的程序员,十分优秀!