【问题标题】:How to keep weired characters in filename如何在文件名中保留奇怪的字符
【发布时间】:2017-08-25 09:46:42
【问题描述】:

我正在创建一个网站,用户可以在其中上传文件 aws-s3minioazure-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


【解决方案1】:

您不能在 blob 名称中使用这些字符。见this article about naming and referencing blobs。您可能会尝试在上传 blob 后将原始名称存储在 [metadata] 属性中,并在下载或引用 blob 时检索它。

【讨论】:

    猜你喜欢
    • 2018-03-15
    • 1970-01-01
    • 2019-09-04
    • 2020-03-09
    • 2018-11-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多