字符串编码
文件以utf-8格式打开到内存中
>>> f.read().encode('utf-8') b"201407703020\n906825525\n\n201407703022\nFanfan0618\n\neg\xef\xbc\x9a\n\xe7\x94\xb1\xe4\xba\x8e\xe5\x86\x85\xe7\xbd\xae\xe5\x87\xbd\xe6\x95\xb0 open() \xe6\x89\x93\xe5\xbc\x80\xe6\x96\x87\xe4\xbb\xb6\xe6\x97\xb6\xef\xbc\x8cread() \xe8\xaf\xbb\xe5\x8f\x96\xe7\x9a\x84\xe6\x98\xaf str\xef\xbc\x8c\xe8\xaf\xbb\xe5\x8f\x96\xe5\x90\x8e\xe9\x9c\x80\xe8\xa6\x81\xe4\xbd\xbf\xe7\x94\xa8\xe6\xad\xa3\xe7\xa1\xae\xe7\x9a\x84\xe7\xbc\x96\xe7\xa0\x81\xe6\xa0\xbc\xe5\xbc\x8f\xe8\xbf\x9b\xe8\xa1\x8c decode()\xe3\x80\x82write() \xe5\x86\x99\xe5\x85\xa5\xe6\x97\xb6\xef\xbc\x8c\xe5\xa6\x82\xe6\x9e\x9c\xe5\x8f\x82\xe6\x95\xb0\xe6\x98\xaf Unicode\xef\xbc\x8c\xe5\x88\x99\xe9\x9c\x80\xe8\xa6\x81\xe4\xbd\xbf\xe7\x94\xa8\xe4\xbd\xa0\xe5\xb8\x8c\xe6\x9c\x9b\xe5\x86\x99\xe5\x85\xa5\xe7\x9a\x84\xe7\xbc\x96\xe7\xa0\x81\xe8\xbf\x9b\xe8\xa1\x8c encode()\xef\xbc\x8c\xe5\xa6\x82\xe6\x9e\x9c\xe6\x98\xaf\xe5\x85\xb6\xe4\xbb\x96\xe7\xbc\x96\xe7\xa0\x81\xe6\xa0\xbc\xe5\xbc\x8f\xe7\x9a\x84 str\xef\xbc\x8c\xe5\x88\x99\xe9\x9c\x80\xe8\xa6\x81\xe5\x85\x88\xe7\x94\xa8\xe8\xaf\xa5 str \xe7\x9a\x84\xe7\xbc\x96\xe7\xa0\x81\xe8\xbf\x9b\xe8\xa1\x8c decode()\xef\xbc\x8c\xe8\xbd\xac\xe6\x88\x90 Unicode \xe5\x90\x8e\xe5\x86\x8d\xe4\xbd\xbf\xe7\x94\xa8\xe5\x86\x99\xe5\x85\xa5\xe7\x9a\x84\xe7\xbc\x96\xe7\xa0\x81\xe8\xbf\x9b\xe8\xa1\x8c encode()\xe3\x80\x82\xe5\xa6\x82\xe6\x9e\x9c\xe7\x9b\xb4\xe6\x8e\xa5\xe5\xb0\x86 Unicode \xe4\xbd\x9c\xe4\xb8\xba\xe5\x8f\x82\xe6\x95\xb0\xe4\xbc\xa0\xe5\x85\xa5 write() \xef\xbc\x8cpython \xe5\xb0\x86\xe5\x85\x88\xe4\xbd\xbf\xe7\x94\xa8\xe6\xba\x90\xe4\xbb\xa3\xe7\xa0\x81\xe6\x96\x87\xe4\xbb\xb6\xe5\xa3\xb0\xe6\x98\x8e\xe7\x9a\x84\xe5\xad\x97\xe7\xac\xa6\xe7\xbc\x96\xe7\xa0\x81\xe8\xbf\x9b\xe8\xa1\x8c\xe7\xbc\x96\xe7\xa0\x81\xe7\x84\xb6\xe5\x90\x8e\xe5\x86\x99\xe5\x85\xa5\xe3\x80\x82\n# coding: UTF-8\n \nfp1 = open('test.txt', 'r')\ninfo1 = fp1.read()\n# \xe5\xb7\xb2\xe7\x9f\xa5\xe6\x98\xaf GBK \xe7\xbc\x96\xe7\xa0\x81\xef\xbc\x8c\xe8\xa7\xa3\xe7\xa0\x81\xe6\x88\x90 Unicode\ntmp = info1.decode('GBK')\n\n201513704089\n19930818\n\n201413703005\n19930512\n\n\nwwu8\neec8\neeh8\neer8\neew8\niih8\nykk8\null8"
>>> f=open('g:\chinese_and_english.txt',encoding='gbk') >>> f.read() "201407703020\n906825525\n\n201407703022\nFanfan0618\n\neg:\n由于内置函数 open() 打开文件时,rea d() 读取的是 str,读取后需要使用正确的编码格式进行 decode()。write() 写入时,如果参数是 Unicode, 则需要使用你希望写入的编码进行 encode(),如果是其他编码格式的 str,则需要先用该 str 的编码进行 de code(),转成 Unicode 后再使用写入的编码进行 encode()。如果直接将 Unicode 作为参数传入 write() ,p ython 将先使用源代码文件声明的字符编码进行编码然后写入。\n# coding: UTF-8\n \nfp1 = open('test.tx t', 'r')\ninfo1 = fp1.read()\n# 已知是 GBK 编码,解码成 Unicode\ntmp = info1.decode('GBK')\n\n201 513704089\n19930818\n\n201413703005\n19930512\n\n\nwwu8\neec8\neeh8\neer8\neew8\niih8\nykk8\null8"
在方法里面用encoding/decoding,作为方法使用 encode/decode
>>> f=open('g:\chinese_and_english.txt','r') >>> f.read() "201407703020\n906825525\n\n201407703022\nFanfan0618\n\neg:\n由于内置函数 open() 打开文件时,rea d() 读取的是 str,读取后需要使用正确的编码格式进行 decode()。write() 写入时,如果参数是 Unicode, 则需要使用你希望写入的编码进行 encode(),如果是其他编码格式的 str,则需要先用该 str 的编码进行 de code(),转成 Unicode 后再使用写入的编码进行 encode()。如果直接将 Unicode 作为参数传入 write() ,p ython 将先使用源代码文件声明的字符编码进行编码然后写入。\n# coding: UTF-8\n \nfp1 = open('test.tx t', 'r')\ninfo1 = fp1.read()\n# 已知是 GBK 编码,解码成 Unicode\ntmp = info1.decode('GBK')\n\n201 513704089\n19930818\n\n201413703005\n19930512\n\n\nwwu8\neec8\neeh8\neer8\neew8\niih8\nykk8\null8"
dd