Estaba creando un sitio web, en el que el usuario puede cargar archivos en aws-s3 , minio y azure-storage , todo funciona bien,
Pero cuando mi cliente carga archivos con un nombre que contiene caracteres como estos,
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??~.[]{}()@!#$%^&*+|¦„®©
o similar a estos, estos caracteres se convierten en un dolor de cabeza, como un archivo cargado con éxito pero cuando se obtiene de las fuentes, no está visible en la página HTML y solo se muestra una imagen rota.
Convertí estos caracteres a alfabetos reales (ejemplo: 'Ĵ'=>'j', 'Ĉ'=>'c', 'ǎ'=>'a') pero ahora mi cliente quiere mantener estos caracteres como están, y cuando el usuario descargó el archivo, necesita el mismo nombre de archivo que cargó,
En backend estoy usando PHP y la base de datos es PostgreSQL ,
¿Cómo puedo resolver este problema?
No puede usar estos caracteres en el nombre del blob. Consulte este artículo sobre nombres y referencias de blobs . Lo que podría intentar es almacenar el nombre original en la propiedad [metadatos] después de cargar el blob y recuperarlo cuando descargue o haga referencia al blob.