utf-8的问题
encodings.utf-8-sig --- 带BOM签名的UTF-8编解码器此模块实现了 UTF-8 编解码器的一个变种:在编码时将把 UTF-8 已编码 BOM 添加到 UTF-8 编码字节数据的开头。
对于有状态编码器此操作只执行一次(当首次写入字节流时)。
在解码时将跳过数据开头作为可选项的 UTF-8 已编码 BOM。
这段话啥意思啊?哪位大神帮忙解释一下啊 懒得去深究,编码的问题,如果乱码,读不出来,就换一种编码就行,
通常 就用"utf-8";有时可能会用这种 "utf-8-sig"
{:10_312:} 阿奇_o 发表于 2021-5-2 12:35
懒得去深究,编码的问题,如果乱码,读不出来,就换一种编码就行,
通常 就用"utf-8";有时可能会用这种 ...
我看视频的时候,老师讲解的时候都没有后边那个sig。我就想知道为啥老师那边没有,而我这必须有。没有就显示不正常 了。 江湖散人 发表于 2021-5-2 20:53
我看视频的时候,老师讲解的时候都没有后边那个sig。我就想知道为啥老师那边没有,而我这必须有。没有就 ...
BOM是字节顺序标记,用来标记字节在内存中的存储位置,一般我们也用不到。在Windows上保存文本时如果没有注意编码就可能会选择"带有BOM的UTF-8"这个选项,这样一来使用代码读取文件的时候你就必须使用encoding="utf-8-sig"了。解决办法也很简单,另存为一次,主动选择编码为"UTF-8"。至于另存为的方法,既可以使用记事本也可以使用Python代码,哪个方便就选择哪个了。 江湖散人 发表于 2021-5-2 20:53
我看视频的时候,老师讲解的时候都没有后边那个sig。我就想知道为啥老师那边没有,而我这必须有。没有就 ...
正所谓,人各有异,机器也是呀,你的操作系统都可能不一样,还有系统的“环境变量”。文件编码方式也是多了去了。。
更直接的(大概率原因是),你文件存储时,可能用了这种BOM标记的编码格式,虽然都属于utf-8系列,
但有时 有些语言 有些模块的、有些方法,没考虑这种编码的处理方式,用一般的utf-8就不能解码出来,于是就表现为乱码。
所以,明白了? 还是推荐用gb2312 toysworld 发表于 2021-5-4 05:04
还是推荐用gb2312
gb2313是个什么东东? 江湖散人 发表于 2021-5-4 10:01
gb2313是个什么东东?
中文简体。
页:
[1]