Lecture et écriture de fichiers sjis. Le résultat final est tout à fait normal, mais ...
Tout d'abord, il y a un exemple d'utilisation de codecs.getreader / writer lorsque vous vous déplacez normalement.
Donc pas possible. En conclusion, utilisez string.encode (), decode ()
Lis:
for line in open('file.txt', 'rt'):
linedec = line.decode('cp932')
...
Aussi, l'écriture est
str(a_unicode_string)
En raison de la belle spécification orz qui entraîne UnicodeEncodeError, les objets non typés Lorsque vous le manipulez, vous ne pouvez pas vous fier à l'opération par défaut et vous devez le convertir vous-même en chaîne. Pourquoi la notation de cette partie
'%s' % obj
Tu peux le faire. (Je pense que cela peut être le même que le comportement str () de ce code)
De plus, lorsque j'essaie d'écrire une chaîne de caractères Unicode dans un fichier ouvert sans définir de code de caractère, j'obtiens un UnicodeEncodeError. De plus, si vous l'ouvrez en mode texte, cela se produira au moment du vidage au lieu de l'écrire, de sorte que la récupération d'erreur ne sera pas possible, ce qui est tout à fait un problème. Il ne semble pas le traiter comme un fichier binaire UTF16.
Alors exportez:
f=open('sjis.txt', 'wt')
lineenc = linestr.encode('cp932')
print >>f, lineenc
print >>f, ('%s' % some_object).encode('cp932')
Recommended Posts