1 votes

AppleScript indique à l'application "Finder" qu'elle ne peut pas utiliser de caractères spéciaux

J'ai trouvé cette question sur la possibilité d'échanger des chemins d'accès Windows avec des utilisateurs Mac et vice versa.

Comment faire la distinction entre les emplacements de fichiers de type Windows et Mac ?

Cela fonctionne très bien pour moi, mais pour une raison quelconque, le finder n'ouvre pas les chemins contenant des caractères spéciaux. Par exemple ä, ö, ü (qui sont courants en Allemagne).

Je pensais qu'ils étaient convertis ou quelque chose comme ça. J'ai donc enlevé la partie "tell application" et l'ai remplacée par return mylocation pour voir ce qui se passe. Le chemin renvoyé est correct et contient également des caractères spéciaux.

Pourquoi le finder ne l'ouvre-t-il pas ? Existe-t-il une solution pour résoudre ce problème ?

Je colle le code ici, pour que nous parlions de la même chose sans confusion :

on searchReplace(theText, SearchString, ReplaceString)
    set OldDelims to AppleScript's text item delimiters
    set AppleScript's text item delimiters to SearchString
    set newText to text items of theText
    set AppleScript's text item delimiters to ReplaceString
    set newText to newText as text
    set AppleScript's text item delimiters to OldDelims
    return newText
end searchReplace

on run {input, parameters}

    set myClip to the input
    set mylocation to searchReplace(myClip, "<", "")
    set mylocation to searchReplace(mylocation, ">.", "")
    set mylocation to searchReplace(mylocation, ">", "")
    set mylocation to searchReplace(mylocation, "\\", "/")
    set mylocation to "smb:" & mylocation
    set mylocation to searchReplace(mylocation, " ", "%20")

    tell application "Finder"
        open location mylocation
    end tell

    # after setting the location, set Finder to topmost, or delete this section if you dont want that.
    tell application "Finder"
        activate
    end tell

    return input
end run

0voto

jona Points 59

J'ai résolu le problème en décodant les trémas comme suit :

considering case
    set mylocation to searchReplace(mylocation, "Ä", "%C3%84")
    set mylocation to searchReplace(mylocation, "ä", "%C3%A4")
    set mylocation to searchReplace(mylocation, "Ö", "%C3%96")
    set mylocation to searchReplace(mylocation, "ö", "%C3%B6")
    set mylocation to searchReplace(mylocation, "Ü", "%C3%9C")
    set mylocation to searchReplace(mylocation, "ü", "%C3%BC")
    set mylocation to searchReplace(mylocation, "ß", "%C3%9F")
    set mylocation to searchReplace(mylocation, "", "%E1%BA%9E")
end considering

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X