Windows 7 UTF-8在Pycharm中不使用西里尔字母
如果我在程序中执行某些操作,它可以正常工作,但当我读取文件时它不工作Windows 7 UTF-8在Pycharm中不使用西里尔字母,windows-7,python,encoding,utf-8,pycharm,Windows 7,Python,Encoding,Utf 8,Pycharm,如果我在程序中执行某些操作,它可以正常工作,但当我读取文件时它不工作 with open('test.txt', 'r') as f: print(f.read()) 输入(text.txt): 输出: слово строка 我将全局编码和项目编码都设置为UTF-8。无结果。文件以UTF-8编码,但您的语言环境默认值为cp1251。要明确,并始终打开具有已知编码的文件: #!python3 with open('test.txt', encoding='u
with open('test.txt', 'r') as f:
print(f.read())
输入(text.txt):
输出:
слово
строка
我将全局编码和项目编码都设置为UTF-8。无结果。文件以UTF-8编码,但您的语言环境默认值为
cp1251
。要明确,并始终打开具有已知编码的文件:
#!python3
with open('test.txt', encoding='utf8') as f:
print(f.read())
Python2用户需要使用io
模块。Python 2内置的open
不支持编码
参数io.open
是Python3的实现,在Python2和Python3中提供了可移植性
此代码与Python 2和Python 3兼容:
from __future__ import print_function # for Python 3 print syntax in Python 2.
import io
with io.open('test.txt', encoding='utf8') as f:
print(f.read())
Ref:文本文件的编码是什么?如果这不是UTF-8,那可能是你的问题。@EiríkrÚtlendi UTF-8不一定是默认值<代码>区域设置。默认设置为getpreferredencoding(False)。从输出来看,我认为默认值是
cp1251
,但是文件是用utf8
编码的。
from __future__ import print_function # for Python 3 print syntax in Python 2.
import io
with io.open('test.txt', encoding='utf8') as f:
print(f.read())