gaoxiuhua520 发表于 2022-9-13 20:26:22

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:41

你这人很奇怪。

上一篇回复你,解释的清清楚楚了,也没看你说个,谢谢。
学习不仔细

gaoxiuhua520 发表于 2022-9-13 20:52:48

ba21 发表于 2022-9-13 20:46
你这人很奇怪。

上一篇回复你,解释的清清楚楚了,也没看你说个,谢谢。


大佬,我q.readline(encoding = "gbk"),q.readline(encoding = 'utf-8'),q.readline(encoding = gbk) 我加过进去了

Twilight6 发表于 2022-9-13 20:55:13



seek 移动的偏移量是字节数,而中文不止一个字节

你有可能移动到的字节恰好在中文字符的中间几个字节,导致原本几个字节组合成一个字的被拆分开来

Twilight6 发表于 2022-9-13 20:55:56

ba21 发表于 2022-9-13 20:46
你这人很奇怪。

上一篇回复你,解释的清清楚楚了,也没看你说个,谢谢。




两个问题出现问题性质不一样,这是调用 seek 导致的

gaoxiuhua520 发表于 2022-9-13 20:56:07

ba21 发表于 2022-9-13 20:46
你这人很奇怪。

上一篇回复你,解释的清清楚楚了,也没看你说个,谢谢。


行,我下次有礼貌一点点~我怕截图太多,你们解释太多

gaoxiuhua520 发表于 2022-9-13 20:59:13

Twilight6 发表于 2022-9-13 20:55
seek 移动的偏移量是字节数,而中文不止一个字节

你有可能移动到的字节恰好在中文字符的中间几个字 ...

谢谢大哥,有没办法解决的,我觉得迟早要读点什么东西出来 还是将45改46改47 直到读出来为止?

gaoxiuhua520 发表于 2022-9-13 21:04:07

gaoxiuhua520 发表于 2022-9-13 20:59
谢谢大哥,有没办法解决的,我觉得迟早要读点什么东西出来 还是将45改46改47 直到读出来为止?

谢谢了,我只能把45那个数字+1 这样写了

Twilight6 发表于 2022-9-13 21:05:54

gaoxiuhua520 发表于 2022-9-13 20:59
谢谢大哥,有没办法解决的,我觉得迟早要读点什么东西出来 还是将45改46改47 直到读出来为止?


seek 函数本身偏移量是字节数,而文件编码不同时,中文的字节数又有所不同,所以想用 seek 实现确切的读取有些麻烦,你可以去百度查一查

有种简单的特殊情况,就是你文件中只有中文字符,而且不含生僻字,那么当文件是 gbk 时候 你可以从 0 开始 偶数递增进行 seek 移动,当文件是 utf-8时,可以 3 个字符进行递增 seek 偏移

zhangjinxuan 发表于 2022-9-13 21:39:57

神奇
页: [1]
查看完整版本: readline()