代码之家  ›  专栏  ›  技术社区  ›  Bjergsen

子流程。getstatusoutput()引发异常:UnicodeDecodeError

  •  0
  • Bjergsen  · 技术社区  · 3 年前

    为什么这一行:

    print(subprocess.getstatusoutput("magick identify -regard-warnings \"C:\\Users\\Workdesk\\Desktop\\test\\帝.jpg\""))
    

    请给出以下错误:

    发生异常:UnicodeDecodeError “charmap”编解码器无法解码位置103中的字节0x9d:字符映射到(<);未定义(>);

    首先,我认为它与unicode字符有关,因为它与ascii兼容,但在许多情况下,它与其他一些unicode字符兼容,例如:

    print(subprocess.getstatusoutput("magick identify -regard-warnings \"C:\\Users\\Workdesk\\Desktop\\test\\ん.jpg\""))
    print(subprocess.getstatusoutput("magick identify -regard-warnings \"C:\\Users\\Workdesk\\Desktop\\test\\Ш.jpg\""))
    print(subprocess.getstatusoutput("magick identify -regard-warnings \"C:\\Users\\Workdesk\\Desktop\\test\\Č.jpg\""))
    

    在许多情况下,unicode可以使用,但在许多情况下,即使使用了相同的字符集组,unicode也不能使用(例如,一些日语/韩语/俄语/瑞典语字符可以使用,一些不能使用)。我真的被迷惑了

    0 回复  |  直到 3 年前