Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/304.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows 7 UTF-8在Pycharm中不使用西里尔字母_Windows 7_Python_Encoding_Utf 8_Pycharm - Fatal编程技术网

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())