ios - 在 Swift 4.2 中传递给多部分 API 的非拉丁(多语言)文件名
问题描述
试图将文件从 iPhone iCloud 上传到多部分 API。当文件名是英文文本时,它在上传后显示良好,但我确实有文件名不是英文,那么这是错误的。
在下图中,文件名是中文“示例.pdf”,但是当我上传它时,我得到的文本是“??.pdf”
后端 API 已经处理了这种转换,因为当我从 Android 上传文件时它可以工作。
此外,当我从 textfiled 发送文本时,它会正确显示我应该为字符串做什么?
//Code from uploading API Call
myRequestData.append("\(MPboundary)\r\n".data(using: String.Encoding.utf8)!)
// set upload image, name is the key of image
myRequestData.append("Content-Disposition: form-data; name=\"\(mediaObj!.key)\"; filename=\"\(mediaObj!.fileName)\"\r\n".data(using: String.Encoding.utf8)!)
myRequestData.append("Content-Type: \(mediaObj!.mimeType)\r\n\r\n".data(using: String.Encoding.utf8)!)
myRequestData.append(mediaObj!.data!)
myRequestData.append("\r\n".data(using: String.Encoding.utf8)!)
解决方案
请将 dbfilename
字段更改collation
为utf8mb4_unicode_ci
它将被修复,否则您必须在发送时对其进行编码,filename
并在您的应用程序上显示时对其进行解码。
推荐阅读
- angular - 如何在nativescript中激活另一个开关时禁用自动开关
- cplex - 为什么 CPLEX Refiner 未检测到损坏的变量界限?
- php - 如何在 WooCommerce 产品管理员中设置始终选中的复选框?
- laravel - Laravel:有没有办法将路由组织成分层树
- iphone - 如何在 swift 4 iOS 中将 Callkit 与 Agora VOiP 集成?
- python-2.7 - Python中的星星和字符串组合模式
- django - 如何使用 React 解决样式表问题?
- javascript - 显示从快递服务器发送到反应方的 pdf
- android - 当 WIFI 网络没有 Internet 连接时检查 .net 或 Xamarin Internet 可用性
- python - 如何将 a=1000000000 转换为十进制数 0 b=0100000000 转换为十进制数 1 等等 9 个数字