簡體   English   中英

為什么在使用 Python 2.7.11 IDLE 時無法保存中文文件?

[英]Why I cannot save file with Chinese characters when using Python 2.7.11 IDLE?

我剛剛從它的官方網站下載了最新的Python 2.7.11 64bit,並將其安裝到我的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 cannot contain "I just dow"。 為什么?

謝謝!

在此處輸入圖像描述

更多:我找到了這個配置選項,但它根本沒有幫助。 IDLE -> 選項 -> 配置 IDLE -> 常規 -> 默認源編碼:UTF-8

More:在中文代碼前加上u ,就萬事大吉了,好辦法。 像下面這樣: 在此處輸入圖像描述

如果沒有u ,有時它會伴隨着損壞的代碼。 像下面這樣: 在此處輸入圖像描述

Python 2.x 使用 ASCII 作為默認編碼,而 Python 3.x 使用 UTF-8。 只需使用:
my_string.encode("utf-8")
將 ascii 轉換為 utf-8(或將其更改為您需要的任何其他編碼)

您也可以嘗試將此行放在代碼的第一行:

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

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'

字符串utf8_txt中的前綴u表示它是一個 Unicode 字符串。

你也可以這樣做。

>>> print u"你好"
>>> 你好

您只需要在您的字符串前加上u來表示它是一個 Unicode 字符串。

在 Windows 上使用 Python 2 時:

  1. 對於要保存在 IDLE 中的具有 Unicode 字符的文件,一行

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

    必須在其開頭添加。

  2. 為了使 Unicode 字符在 Windows 的控制台輸出中正確顯示,如果運行腳本,保存在文件中,在 IDLE 控制台或 Windows shell 中,字符串必須以u開頭:

     print u"你好" print u"Привет"

    但是在交互模式下,我發現西里爾字母不需要這個。

即使在 python 3.7 中我仍然遇到同樣的問題,UTF-8 仍然可以解決問題

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM