kRe*_*oSo 3 python character-encoding python-3.x
在 python 2.x 中,我使用了
"shift-jis".decode('shift-jis').encode('utf-8')
Run Code Online (Sandbox Code Playgroud)
但 python 3.x 中不再有 str.decode() 。python 3.x 中的等效代码是什么?
更新 :
更具体:
python2的函数是
def unzip(file, dir):
zips = zipfile.ZipFile(file)
for info in zips.infolist():
info.filename = info.filename.decode('shift-jis').encode('utf-8')
zips.extract(info,dir)
print(info, filename)
Run Code Online (Sandbox Code Playgroud)
该函数的等效 python3 代码是什么?
小智 5
对于您更新的问题:
\n\ndef unzip(file, directory): # dir is a keyword\n with zipfile.ZipFile(file, mode=\'r\') as zips:\n zips.printdir()\n zips.extractall(directory)\nRun Code Online (Sandbox Code Playgroud)\n\n。
\n\n>>> b\'\\x82\\xb3\'.decode(\'shiftjis\')\n\'\xe3\x81\x95\'\n>>> b\'\\x82\\xb3\'.decode(\'shift-jis\')\n\'\xe3\x81\x95\'\n>>> b\'\\x82\\xb3\'.decode(\'shift_jis\')\n\'\xe3\x81\x95\'\n>>> \'\xe6\x97\xa5\xe6\x9c\xac\xe8\xaa\x9e\'.encode(\'shiftjis\')\nb\'\\x93\\xfa\\x96{\\x8c\\xea\'\n>>> b\'\\x93\\xfa\\x96{\\x8c\\xea\'.decode(\'shiftjis\')\n\'\xe6\x97\xa5\xe6\x9c\xac\xe8\xaa\x9e\'\nRun Code Online (Sandbox Code Playgroud)\n\n以及读取文件时:
\n\nwith open(\'shiftjis.txt\', \'r\', encoding=\'shiftjis\') as file:\n # do something with it\nRun Code Online (Sandbox Code Playgroud)\n\n了解更多:http://docs.python.org/3.3/library/io.html#io-base-classes
\n\n一个不太理智的版本:
\n\nwith open(\'shiftjis.txt\', \'rb\') as file:\n string = file.read().decode(\'shift-jis\')\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
6263 次 |
| 最近记录: |