Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.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
用python编写中文命令行窗口_Python_Unicode_Cmd - Fatal编程技术网

用python编写中文命令行窗口

用python编写中文命令行窗口,python,unicode,cmd,Python,Unicode,Cmd,我是python新手 我正在尝试将一些中文word打印到命令行windows 10和文件,但遇到问题: 这是我的密码: fh = open("hello.txt", "w") str="欢迎大家加入自由职业者群体。谢谢大家" print(str) fh.write(str) fh.close() 两个问题: fh变量声明后不应有标识。您不应该将字符串命名为“str”,因为这是一个内置函数。如果您想使用拉丁字母表之外的字符,您需要声明您使用的是UTF-8,如下所示:#-*-编码:UTF-8

我是python新手 我正在尝试将一些中文word打印到命令行windows 10和文件,但遇到问题:

这是我的密码:

fh = open("hello.txt", "w") 
str="欢迎大家加入自由职业者群体。谢谢大家"
print(str)
fh.write(str) 
fh.close()
两个问题:

fh变量声明后不应有标识。您不应该将字符串命名为“str”,因为这是一个内置函数。如果您想使用拉丁字母表之外的字符,您需要声明您使用的是UTF-8,如下所示:
#-*-编码:UTF-8-*-
(将其放在文件顶部)。那么它应该会起作用。尽管终端有时会出现与外来字符有关的问题

# -*- coding: utf-8 -*-

fh = open("hello.txt", "w")
str1="欢迎大家加入自由职业者群体。谢谢大家"
print(str1)
fh.write(str1)
fh.close()
编辑
官方的解决办法是,使用PyCharm

文件的默认编码是
locale.getpreferredencoding(False)
,在您的系统上似乎是
cp1252
。指定打开文件时的编码

同时将
一起使用,文件将在退出块时为您关闭:

#!python3.6
with open('hello.txt','w',encoding='utf8') as fh:
    str="欢迎大家加入自由职业者群体。谢谢大家"
    print(str)
    fh.write(str) 
要在控制台上查看汉字,您需要安装中文语言包,并将控制台字体更改为支持中文的字体。使用支持UTF-8的IDE也可以。“方框问号”字符是字体不支持字符时显示的字符。如果将这些字符剪切粘贴到支持中文字体的应用程序(如记事本)中,您应该会看到正确的字符

# -*- coding: utf-8 -*-

fh = open("hello.txt", "w")
str1="欢迎大家加入自由职业者群体。谢谢大家"
print(str1)
fh.write(str1)
fh.close()
这是我的美国Windows系统和中文软件包。控制台配置了SimHei字体


对我来说,在命令行中更改字体是有效的。
系统:Windows 10

有效的字体:NSimSun

也许问题在于缩进。Python对空格非常敏感。尝试取消缩进您的所有代码。我更改了它,但仍然有错误,有人有将此单词打印到cmd行的示例吗?您的错误消息非常有用且明确-将来,尝试用谷歌搜索您收到的错误消息的文本,您可能会发现其他人有相同的问题。这就是我发现你的problem@QuyetAn-确保使用编码:(如下所述)设置Python源文件的编码。UTF-8、Big5、EUC等…仍然错误文件“C:\Users\zangq\AppData\Local\Programs\Python\Python36-32\lib\encodings\cp1252.py”,第19行,在encode return codecs.charmap\u encode(输入,self.errors,encoding\u表)[0]UnicodeEncodeError:“charmap”编解码器无法对位置0-17中的字符进行编码:字符映射到@QuyetAn您在哪个操作系统上运行此操作?虽然你的代码中有一些错误,但它在Ubuntu 16.4上仍然适用于我。@ChristianDean它的windows基于他的文件路径。这就是我正在使用的,它很好。@QuyetAn你能在python空闲中打开你的程序并从那里运行它吗。命令行可以是problematic@ChristianDean我正在使用windows 10。您的答案目前缺乏详细信息。请您对其进行扩展,以便未来的读者,或者实际上是OP,可以执行您作为解决方案提供的建议。虽然此设置可以解决OP的问题,但最好包括解释它解决OP问题的原因。通过这种方式,未来的访问者可以从您的帖子中学习,并将其应用到自己的代码中。因此,它不是一种编码服务,而是一种知识资源。此外,高质量、完整的答案更有可能被提升。这些特性,以及所有帖子都是独立的要求,是SO作为一个平台的一些优势,使其区别于论坛。您可以
编辑
以添加其他信息并用源文档补充说明。