Python google gsutil:ascii编解码器可以';t编码字符

Python google gsutil:ascii编解码器可以';t编码字符,python,character-encoding,gsutil,Python,Character Encoding,Gsutil,我试图在google cloud近线存储上同步我的本地文件夹,但出现以下错误: "Caught non-retryable exception while listing file:///var/lib/..: 'ascii' codec can't encode character u'\xe9' in position 170: ordinal not in range(128) CommandException: Caught non-retryable exception - abort

我试图在google cloud近线存储上同步我的本地文件夹,但出现以下错误:

"Caught non-retryable exception while listing file:///var/lib/..: 'ascii' codec can't encode character u'\xe9' in position 170: ordinal not in range(128)
CommandException: Caught non-retryable exception - aborting rsync
Caught ^C - exiting"
请问有什么解决办法吗?
谢谢。

看起来您试图同步的文件名中有一个带重音的e-é

对所有对象名和文件名使用UTF-8将确保gsutil在对文件进行操作时不会遇到字符编码错误。不幸的是,以这种方式上传/下载的文件仍有可能存在互操作性问题,原因与gsutil无关;示例:跨Linux和Windows等不同平台复制文件名。如果您使用的是Windows控制台,则可以指定通配符或文件夹(使用-R选项),而不是显式指定单个文件,以防止出现这种情况

如果文件太多,可以使用工具将旧字符编码转换为UTF-8。其中一个工具是。

或者,您可以使用支持S3兼容模式下谷歌云存储的工具

mc
完全是UTF-8,可以上载和下载所有已知的UTF-8字符

按照谷歌凭证指南获取您的AccessKeyID和SecretAccessKey。一旦有了它们,请更新~/./mc/config.json配置文件

$ mc config host add storage.googleapis.com <your_access_key> <your_secret_key> S3v2
$mc config host add storage.googleapis.com S3v2

注意:Google云存储仅支持旧签名版本2:(,因此您必须选择-S3v2

更改A-Za-z0-9中文件夹的名称,并且仅更改一些特殊字符,同时避免对文件夹使用非常大的名称,因为这可能会增加路径字符串的长度,从而导致错误。感谢您的回答,但我也尝试在“A-Za-z0-9”中同步一个文件文件夹名,但错误仍然存在。我想这是因为字符编码不同于UTF-8。由于有数千个文件,如何找到错误的文件名?