readline()
UnicodeDecodeError: 'utf-8' codec can't decode byte 0x89 in position 0: invalid start byte ( UnicodeDecodeError错误:“utf-8”编解码器无法解码位置0处的字节0x89:无效的起始字节) 你这人很奇怪。上一篇回复你,解释的清清楚楚了,也没看你说个,谢谢。
学习不仔细 ba21 发表于 2022-9-13 20:46
你这人很奇怪。
上一篇回复你,解释的清清楚楚了,也没看你说个,谢谢。
大佬,我q.readline(encoding = "gbk"),q.readline(encoding = 'utf-8'),q.readline(encoding = gbk) 我加过进去了
seek 移动的偏移量是字节数,而中文不止一个字节
你有可能移动到的字节恰好在中文字符的中间几个字节,导致原本几个字节组合成一个字的被拆分开来
ba21 发表于 2022-9-13 20:46
你这人很奇怪。
上一篇回复你,解释的清清楚楚了,也没看你说个,谢谢。
两个问题出现问题性质不一样,这是调用 seek 导致的
ba21 发表于 2022-9-13 20:46
你这人很奇怪。
上一篇回复你,解释的清清楚楚了,也没看你说个,谢谢。
行,我下次有礼貌一点点~我怕截图太多,你们解释太多 Twilight6 发表于 2022-9-13 20:55
seek 移动的偏移量是字节数,而中文不止一个字节
你有可能移动到的字节恰好在中文字符的中间几个字 ...
谢谢大哥,有没办法解决的,我觉得迟早要读点什么东西出来 还是将45改46改47 直到读出来为止? gaoxiuhua520 发表于 2022-9-13 20:59
谢谢大哥,有没办法解决的,我觉得迟早要读点什么东西出来 还是将45改46改47 直到读出来为止?
谢谢了,我只能把45那个数字+1 这样写了 gaoxiuhua520 发表于 2022-9-13 20:59
谢谢大哥,有没办法解决的,我觉得迟早要读点什么东西出来 还是将45改46改47 直到读出来为止?
seek 函数本身偏移量是字节数,而文件编码不同时,中文的字节数又有所不同,所以想用 seek 实现确切的读取有些麻烦,你可以去百度查一查
有种简单的特殊情况,就是你文件中只有中文字符,而且不含生僻字,那么当文件是 gbk 时候 你可以从 0 开始 偶数递增进行 seek 移动,当文件是 utf-8时,可以 3 个字符进行递增 seek 偏移 神奇
页:
[1]