我刚刚从其官方网站下载了最新的Python 2.7.11 64位并将其安装到我的Windows 10.我发现如果新的IDLE文件包含中文字符,就像你好,那么我无法保存文件。如果我试图多次保存它,那么新文件就会崩溃并消失。
我还安装了最新的python-3.5.1-amd64.exe,它没有这个问题。
如何解决?
更多: 来自wiki页面的示例代码https://zh.wikipedia.org/wiki/%E9%B8%AD%E5%AD%90%E7%B1%BB%E5%9E%8B
如果我在这里通过代码,StackOverflow会警告我:Body不能包含“我只是道琼斯”。为什么?的
谢谢!
更多: 我找到了这个配置选项,但它根本没用。 IDLE - >选项 - >配置IDLE - >一般 - >默认源编码:UTF-8
更多:
通过在中文代码之前添加this.state.items
,一切都会正确,这是很好的方式。如下所示:
如果没有getCheckedItems: function() {
return this.state.items.map(function(item) {
if(_checkedItems.indexOf(item.id) > -1){
return item
}
})
}
,有时会出现损坏的代码。如下所示:
答案 0 :(得分:2)
Python 2.x使用ASCII作为默认编码,而Python 3.x使用UTF-8。只需使用:
my_string.encode("utf-8")
将ascii转换为utf-8(或将其更改为您需要的任何其他编码)
您也可以尝试将此行放在代码的第一行:
# -*- coding: utf-8 -*-
答案 1 :(得分:2)
Python 2使用ASCII作为其无法存储中文字符的字符串的默认编码。另一方面,Python 3默认使用Unicode编码来存储中文字符。
但这并不意味着Python 2不能使用Unicode字符串。您只需将字符串编码为Unicode即可。这是将字符串转换为Unicode字符串的示例。
>>> plain_text = "Plain text"
>>> plain_text
'Plain text'
>>> utf8_text = unicode(plain_text, "utf-8")
>>> utf8_txt
u'Plain_text'
字符串u
中的前缀utf8_txt
表示它是Unicode字符串。
你也可以这样做。
>>> print u"你好"
>>> 你好
您只需在u
前添加字符串即表示它是Unicode字符串。
答案 2 :(得分:0)
在Windows上使用Python 2时:
对于要在IDLE中保存Unicode字符的文件,行
u
必须在其开头添加。
要在Windows中的控制台输出中正确显示Unicode字符,如果在IDLE控制台或Windows shell中运行脚本,保存在文件中,则必须添加字符串print u"你好"
print u"Привет"
:
var req = {
headers: {
'Content-Type':'application/json'
}
}
$http.post(url,req)
.then(
function(response){
},
function(response){
});
但是在互动模式下,我发现没有必要使用西里尔文。
答案 3 :(得分:0)
即使在python 3.7中,我仍然遇到相同的问题,UTF-8仍然可以解决问题