溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

解決sublime中python出現(xiàn)中文亂碼的問(wèn)題

發(fā)布時(shí)間:2020-08-04 13:54:19 來(lái)源:億速云 閱讀:491 作者:清晨 欄目:編程語(yǔ)言

小編給大家分享一下解決sublime中python出現(xiàn)中文亂碼的問(wèn)題,希望大家閱讀完這篇文章后大所收獲,下面讓我們一起去探討吧!

一、亂碼現(xiàn)象

利用sublime自帶編譯快捷方式ctrl+B會(huì)出現(xiàn)中文亂碼的情況。

print("沒(méi)有循環(huán)數(shù)據(jù)!")
print("完成循環(huán)!")

解決sublime中python出現(xiàn)中文亂碼的問(wèn)題

二、尋找原因

1、由于之前我已經(jīng)安裝了插件ConvertToUTF8,排除文本編碼錯(cuò)誤問(wèn)題。

2、相同的代碼在插件sublimerepl搭建的解釋器交互下(按F5鍵),能成功顯示中文。

解決sublime中python出現(xiàn)中文亂碼的問(wèn)題

在查找了很多案例之后發(fā)現(xiàn):

Anaconda插件安裝之后會(huì)自動(dòng)生成一個(gè)叫“Anaconda Python Builder”的編譯系統(tǒng),在 工具-編譯系統(tǒng)-中可以看到。

sublime讀取解釋器返回文本的編碼不一樣,于是通過(guò)下面這段代碼驗(yàn)證:

import sys
print(sys.stdout.encoding)

用ctrl+B進(jìn)行編譯,返回的是“cp936”,用repl解釋器交互返回的是utf-8,說(shuō)明是由于編碼不一致導(dǎo)致的。

之后新建了一個(gè)編譯系統(tǒng):

在Python3.sublime.build中寫(xiě)入下面代碼:

{
"cmd":["C:\\Users\\jh\\Anaconda3\\python.exe", "-u", "$file"],
"path":"C:\\Users\\jh\\Anaconda3\\python.exe",   // 注意:路徑根據(jù)自己的python安裝路徑而定 
"file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
"selector": "source.python",
"encoding": "utf-8" ,
"env": {"PYTHONIOENCODING": "utf8"}//通過(guò)這句,使編碼一致,都是utf8
}

之后再用ctrl+B進(jìn)行編譯,返回“utf-8”,并且能成功打印中文。

但是在此之前,因?yàn)閲L試多種方法,導(dǎo)致anaconda插件的自動(dòng)補(bǔ)全代碼無(wú)法使用,于是重裝。

三、Anaconda插件的正確使用

1、閱讀官方指南,官方給的建議是最好每個(gè)項(xiàng)目都獨(dú)立設(shè)置。

2、根據(jù)官方的建議,新建一個(gè)project,并編輯項(xiàng)目,在sublime-project文件中寫(xiě)入:

{
    "build_systems":
    [
        {
            "name": "Anaconda Python Builder",
            "selector": "source.python",
            "encoding": "utf-8" ,
            "env": {"PYTHONIOENCODING": "utf8"},\\使編碼一致
            "shell_cmd": "C:\\Users\\jh\\Anaconda3\\python.exe -u \"$file\"",\\解釋器路徑
        }
    ],
    "folders":
    [
        {
            "follow_symlinks": true,
            "path": "."
        }
    ],
    "settings":
    {
        "python_interpreter": "C:\\Users\\jh\\Anaconda3\\python.exe" \\解釋器路徑
        
    }
}

保存。

3、在Preferences>Package Settings>Anaconda,在那里會(huì)發(fā)現(xiàn)兩個(gè)不同的條目,Settings-Default和Settings-User分別選擇1和2。這些文件中的任何選項(xiàng)都必須放置在全局范圍內(nèi)。在Settings-User中寫(xiě)入:

 {   //http://damnwidget.github.io/anaconda/IDE/
     //"python_interpreter":"C:\\Users\\jh\\Anaconda3\\envs\\tensorflow\\python.exe",
     "python_interpreter":"C:\\Users\\jh\\Anaconda3\\python.exe",
     "auto_python_builder_enabled": false,
     "suppress_word_completions":true,//禁用掉Sublime Text原生的自動(dòng)補(bǔ)全
     "suppress_explicit_completions":true,
     "complete_parameters":true,
 
     "anaconda_linter_phantoms": true,//提示錯(cuò)誤,識(shí)別代碼中的語(yǔ)法錯(cuò)誤,代碼建議,格式建議等
     "pyflakes_explicit_ignore"://告訴PyFlakes要忽視哪些警告
     [
        // "Redefined",
        "UnusedImport"
        // "UndefinedName",
        // "UndefinedLocal",
        // "UnusedVariable,",
        // "UndefinedExport",
        // "DuplicateArgument",
        // "RedefinedWhileUnused"
     ],
     "anaconda_linting_behaviour": "always",//模式
     "anaconda_linting": true,
     "anaconda_linter_delay": 2.0,//周期
     "swallow_startup_errors": true,
     "env": {"PYTHONIOENCODING": "utf8"} ,
 }

看完了這篇文章,相信你對(duì)解決sublime中python出現(xiàn)中文亂碼的問(wèn)題有了一定的了解,想了解更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI