使用Python和GoogleDriveSDK的UTF8编码的HTML的MediaFileUpload

2024-10-04 09:22:01 发布

您现在位置:Python中文网/ 问答频道 /正文

{上传一个用于创建^/a1驱动器参考的基本文件。在

然而,虽然我有创建文件的代码,从HTML转换为googledoc格式。当它们只包含ASCII字符时,它工作得很好,但当我添加一个非ASCII字符时,它会失败,并进行以下回溯:

Traceback (most recent call last):
  File "d:\my\py\ckwort.py", line 949, in <module>
    rids, worker_documents = analyze( meta, gd )
  File "d:\my\py\ckwort.py", line 812, in analyze
    gd.mkdir( **iy )
  File "d:\my\py\ckwort.py", line 205, in mkdir
    self.create( **( kw['subop']))
  File "d:\my\py\ckwort.py", line 282, in create
    media_body=kw['media_body'],
  File "D:\my\py\gdrive2\oauth2client\util.py", line 120, in positional_wrapper
    return wrapped(*args, **kwargs)
  File "D:\my\py\gdrive2\apiclient\http.py", line 676, in execute
    headers=self.headers)
  File "D:\my\py\gdrive2\oauth2client\util.py", line 120, in positional_wrapper
    return wrapped(*args, **kwargs)
  File "D:\my\py\gdrive2\oauth2client\client.py", line 420, in new_request
    redirections, connection_type)
  File "D:\my\py\gdrive2\httplib2\__init__.py", line 1597, in request
    (response, content) = self._request(conn, authority, uri, request_uri, method, body, headers, redirections, cachekey)
  File "D:\my\py\gdrive2\httplib2\__init__.py", line 1345, in _request
    (response, content) = self._conn_request(conn, request_uri, method, body, headers)
  File "D:\my\py\gdrive2\httplib2\__init__.py", line 1282, in _conn_request
    conn.request(method, request_uri, body, headers)
  File "C:\Python27\lib\httplib.py", line 958, in request
    self._send_request(method, url, body, headers)
  File "C:\Python27\lib\httplib.py", line 992, in _send_request
    self.endheaders(body)
  File "C:\Python27\lib\httplib.py", line 954, in endheaders
    self._send_output(message_body)
  File "C:\Python27\lib\httplib.py", line 812, in _send_output
    msg += message_body
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 370: ordinal not in range(128)

我找不到任何参数来指定MediaFileUpload应该使用什么文件编码(我的文件使用的是UTF-8)。我错过什么了吗?在

后来:我突然想尝试添加

^{pr2}$

到每个源文件。不会伤害ASCII字符,但不会帮助那些包含非ASCII UTF-8字符的字符。在

稍后:我已经解决了这个问题,使用HTML实体(表示Unicode字符的ASCII字符序列)来处理序号大于127的所有字符。但这不应该是。在


Tags: 文件inpyselfrequestmylineascii