hedefu 发表于 2020-5-17 18:51

求助各位 大佬,

file=open(r"C:\Users\Hedefu\Desktop\new.txt","wb")#写入
myStr = "hello 中国"
print(file.write(myStr.encode("utf-8")))
file.close()

file = open(r"C:\Users\Hedefu\Desktop\new.txt","rb")#读取
str1 = file.read()
print(str1.decode("utf-8","ignore"))
各位大佬,在学习编码的问题中,有一事不明,按二进制写入,按二进制读取,为啥执行后写入代码会显示12.    求助。

Ryan袁奥 发表于 2020-5-17 19:06

思势 发表于 2020-5-17 19:34

帮楼主顶贴

听雨在哭泣 发表于 2020-5-17 19:56

你print(file.write(myStr.encode("utf-8")))就是12,file.write返回写入的字符长度

hedefu 发表于 2020-5-17 20:13

听雨在哭泣 发表于 2020-5-17 19:56
你print(file.write(myStr.encode("utf-8")))就是12,file.write返回写入的字符长度

大佬,我把file.write关键字删除后得到一个二进制编码。不是heLlo 中国啊 。求解。

挑灯看花 发表于 2020-5-17 20:34

file=open("new.txt","w",encoding="utf8")#写入
myStr = "hello 中国"
file.write(myStr)
file.close()

file = open("new.txt","r",encoding="utf8")#读取
str1 = file.read()
print(str1)
file.close()
不明白你啥意思{:301_999:}

hedefu 发表于 2020-5-17 20:46

挑灯看花 发表于 2020-5-17 20:34
file=open("new.txt","w",encoding="utf8")#写入
myStr = "hello 中国"
file ...

本来这两端代码最后的结果只应该显示 hello中国 才对, 但是,现在多了一行12   就是这个意思。

挑灯看花 发表于 2020-5-17 20:51

hedefu 发表于 2020-5-17 20:46
本来这两端代码最后的结果只应该显示 hello中国 才对, 但是,现在多了一行12   就是这个意思。

代码第三行改为file.write(myStr.encode("utf-8"))

hedefu 发表于 2020-5-17 21:00

挑灯看花 发表于 2020-5-17 20:51
代码第三行改为file.write(myStr.encode("utf-8"))

这。。。我脑子发热了。。。感谢。不打印不就好了。。。还要多学啊。今天听课听多了。
页: [1]
查看完整版本: 求助各位 大佬,