Si vous transférez une commande depuis aws cli comme ceci, elle ressemblera à ceci (la commande et la sortie sont factices).
$ aws s3 ls --recursive bucket/photo/1/
2014-05-06 16:45:30 11979 photo/1/20140506164529_Capture d'écran 2014-01-28 15.27.48.png
Cependant, si vous le changez pour la commande suivante, par exemple, cela devient ennuyeux.
$ aws s3 ls --recursive bucket/photo/1/ | tee /dev/null
2014-05-06 16:45:30 11979 photo/1/20140506164529_????????? 2014-01-28 15.27.48.pn
Hanté!
Le même phénomène se produit lorsque le fichier est sorti par redirection.
La cause réside dans le système de traitement Python qui implémente la commande ʻaws`. Python correspond au code de caractère en fonction de la destination de sortie, mais dans le cas d'une redirection ou d'un tube, puisque le code de caractère de la destination de sortie n'est pas connu, il est forcé de sortir en ASCII! !! !! Imitation supplémentaire! !! !! </ del>
En guise de contre-mesure, vous devez définir une variable d'environnement / variable shell appelée PYTHONIOENCODING
.
$ PYTHONIOENCODING=UTF-8 aws s3 ls --recursive bucket/photo/1/ | tee /dev/null
2014-05-06 16:45:30 11979 photo/1/20140506164529_Capture d'écran 2014-01-28 15.27.48.png
Recommended Posts