File_exist con nome file contenente "°" (segno dei gradi o di "n°")

di nicolandb72 il
4 risposte

Buongiorno 
devo vedere se esiste su filesystem linux un file che purtroppo contiene il segno dei gradi nel nome.

(uno per dire uno dei tanti)

Il problema non è nel path,. Se rinomino il file senza segno dei gradi lo trova subito.

Dovrei formattare il nome file in modo che venga escapato correttamente per rilevarlo così come piace a linux. 

Il nome file è tipo “DOCUMENTO n° 1234.pdf”. Il cliente li passa così e preferirei una soluzione senza rinominare i documenti. Sono centinaia e ce ne sono di nuovi ogni giorno.

se eseguo > ls da shell ottengo qualcosa tipo   "DOCUMENTO n'$'\370 1234.pdf"

Vi è mai capitato?

Grazie

4 Risposte

  • 13/11/2023 - nicolandb72 ha scritto:


    Il problema non è nel path,. Se rinomino il file senza segno dei gradi lo trova subito.

    Allora direi che il problema è proprio nel path, o meglio nella sua natura.

    Ma da dove proviene il nome del file che poi vai a ricercare e non trovi a causa del carattere?
    Sei sicuro che venga utilizzato lo stesso encoding in tutti i frangenti (es. UTF-8)?

  • Il file viene uploadato via ftp e contiene quel carattere.

    Proverò la verifica sullìencoding dello script.

    Grazie mille!

  • 13/11/2023 - nicolandb72 ha scritto:


    se eseguo > ls da shell ottengo qualcosa tipo   "DOCUMENTO n'$'\370 1234.pdf"

    Ciao,
    i caratteri speciali come il ° possono non essere interpretati corrrettamente e potresti per esempio  trattare la stringa con le funzioni :

    escapeshellarg(urlencode("DOCUMENTO n° 1234.pdf"))

    Verifica se fa al caso tuo

  • 13/11/2023 - nicolandb72 ha scritto:


    se eseguo > ls da shell ottengo qualcosa tipo   “DOCUMENTO n'$'\370 1234.pdf”

    Shell su sistema opensuse15.4 : come vedi il file “prova °C.txt” viene elencato correttamente

Devi accedere o registrarti per scrivere nel forum
4 risposte