問題描述,如圖所示:
![](/d/20211017/023571698471fb92c85e6c571d3762da.gif)
首先第一句字符sss沒有打印出來,直接顯示print中文問題;所以可以判斷問題不是由python造成,而是由vim字符保存的編碼規(guī)則導致的,出現(xiàn)的無法識別問題;
查看:輸入命令:set encoding
這一步證明vim本身的顯示編碼規(guī)則為cp936,而不是utf-8
查看保存的文件編碼規(guī)則,set fileencoding
![](/d/20211017/4a27b8808de9d2b5a082d567c9028fdd.gif)
顯示fileencoding為空,但至少可以肯定無法指定是用utf-8規(guī)則;查看vimrc文件可以得知,file保存的編碼規(guī)則只能是utf-8,但肯定是轉(zhuǎn)碼失?。籧p936是utf-8的母集,更為寬松的規(guī)則;
![](/d/20211017/12853ad39085843bb73415e25f85f2b1.gif)
更改vimrc中fileencodings為下一句,包含cp936
重新打開文件,查看set fileencoding顯示為cp936
![](/d/20211017/75a4815d1dd2f04e404d2e9d6a0b1efc.gif)
說明文件保存編碼規(guī)則為cp936,所以python編譯器無法正確轉(zhuǎn)換(使用utf-8)
然后 set fileencoding=utf-8,然后保存
python運行代碼成功,
![](/d/20211017/4b7d8673000878a5b7c6024e70dc4935.gif)
強行將vim內(nèi)部編碼設置為utf-8編碼,
![](/d/20211017/c7ff4271f47f698cfe3fc81a6dd80274.gif)
新建文件test004.py,查看encoding與fileencoding均為utf-8,,文件也運行成功;但vim本身終端顯示亂碼
![](/d/20211017/02fe90ce6ca63f4f838b7f3c18db09a5.gif)
由于termencoding與encoding是一樣的,但沒有轉(zhuǎn)換成功,說明encoding本身的utf-8無法正確加載vim;
修改vimrc
![](/d/20211017/9558fbcfb5272a3b397f240de9da0f07.gif)
然后就能正常顯示;
結(jié)論:encoding為vim自身工具的編碼規(guī)則;fileencoding為file讀取保存的規(guī)則;termencoding為vim終端顯示的編碼規(guī)則;
最終的解決方案:
![](/d/20211017/2fd8e87dbfbc348f14b8dfe0a1e18b16.gif)
補充:vim+python3的字符串卻不能使用中文
ss=“愛江山更愛美人“
會出現(xiàn)錯誤,無法編碼
這個地方會出錯是因為
vim工具的encoding編碼為cp936
臨時解決方案
在vim命令行:
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。如有錯誤或未考慮完全的地方,望不吝賜教。