【发布时间】:2017-08-25 09:46:42
【问题描述】:
我正在创建一个网站,用户可以在其中上传文件 aws-s3、minio 和 azure-storage,一切正常,
但是当我的客户上传的文件名称包含这些字符时,
AAÀÃÁÆÂÅÄÞC?ÇÈEÉËÊGGIÏÎÍÌLLÑNØÓÒÔÕÖSS?Š?TÙÛÚÜÝZŽZâaaáaãA??åà??A?aäæ?????þcCCcç??c?Cc???dddÐdDddd?d?dðd?????eeeEEeeE?Eê?èëé?fƒf?fggGgGgGg?g?ggggg?g?g?ggg?h?HHh??îïíìiiiI?iiII?I??I???i?j?j?j?jJjjj?j?j?j?j?j?j?j?j?k?kKk?k?kkk?k?l?l?lllllllLlLl?lLlll?l????ñ?N????n?n?Nn??oõôOoOOoø?oò?OoóOœŒö?????qrrRrR?R????Sšs?s?s????ß?t?t?tTt?t?tTtTt™tu?UuUuUUuUuUUuuUUuUùúû?uuUUuuü?v?v?v?wwwWw?yýÿŸY?ž??z?z??~.[]{}()@!#$%^&*+|¦„®©
或类似这些,这些字符会让人头疼,就像文件上传成功但是从源获取它时,它在 HTML 页面上不可见,并且只显示损坏的图像。
我将这些字符转换为实际的字母(例如:'Ĵ'=>'j'、'Ĉ'=>'c'、'ǎ'=>'a')但现在我的客户希望将这些字符保留为是的,当用户下载文件时,他们需要与上传的文件名相同,
在后端我使用PHP,数据库是PostgreSQL,
我该如何解决这个问题。
【问题讨论】:
-
那些是“实际的字母”,它们只是不属于 7 位 ASCII(主要是罗马)字符集。是时候了解文本编码和 unicode 了!
标签: php postgresql amazon-s3 azure-blob-storage minio