成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Windows 命令行下解決python utf-8中文輸出的終極解決方案

h9911 / 585人閱讀

摘要:代碼參考了這里上文對各種系統(tǒng)無法輸出奇葩編碼的字符做了總結(jié),本文中只針對下編碼但想執(zhí)行編碼的文件進(jìn)行修改。這樣就實(shí)現(xiàn)了下和下兼容了當(dāng)然如果不知道原來是什么編碼,但想轉(zhuǎn)成編碼的話,將上面的條件刪掉即可。

代碼參考了這里:http://wiki.python.org/moin/P...

上文對各種系統(tǒng)無法輸出奇葩編碼的字符做了總結(jié),本文中只針對windows cmd下GBK編碼(cp936)但想執(zhí)行utf-8編碼的Python文件進(jìn)行修改。

原理就是:

Another is to put an intercept between sys.stdout, and the text wrapper.

更多還是看參考文章吧,這里直接貼代碼:

[python] view plain copy

-- coding: utf-8 --

import sys

class UnicodeStreamFilter:

def __init__(self, target):  
    self.target = target  
    self.encoding = "utf-8"  
    self.errors = "replace"  
    self.encode_to = self.target.encoding  
def write(self, s):  
    if type(s) == str:  
        s = s.decode("utf-8")  
    s = s.encode(self.encode_to, self.errors).decode(self.encode_to)  
    self.target.write(s)  
      

if sys.stdout.encoding == "cp936":

sys.stdout = UnicodeStreamFilter(sys.stdout)  

if name == "__main__":

a = "你好"  
b = u"你好"  
print a  
print b  

保存成一個(gè)py文件,直接import即可。

這樣就實(shí)現(xiàn)了linux下和windows下兼容了~

當(dāng)然如果不知道原來是什么編碼,但想轉(zhuǎn)成utf-8編碼的話,將上面的if條件刪掉即可。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/38090.html

相關(guān)文章

  • Python2.x 字符編碼終極指南

    摘要:值得注意的是,有的編碼方案不一定能表示某些信息,這時(shí)編碼就會失敗,比如就不能用來表示中文。數(shù)組的每一項(xiàng)是一個(gè)字節(jié),用來表示。所以對于字符串來說,其長度等于編碼后字節(jié)的長度。所以,讓來編碼解碼中文,就超出了其能力范圍。 在人機(jī)交互之字符編碼 一文中對字符編碼進(jìn)行了詳細(xì)的討論,并通過一些簡單的小程序驗(yàn)證了我們對于字符編碼的認(rèn)識。但僅了解這篇文章的內(nèi)容,并不能幫我們在日常編程中躲過一些字符編...

    Amio 評論0 收藏0
  • 關(guān)于解決Python亂碼問題終極解決方案 (TL;DR)

    摘要:關(guān)于解決亂碼問題的終極解決方案有個(gè)特別好玩的現(xiàn)象,當(dāng)我們?yōu)榱司幋a頭疼的時(shí)候,幾乎搜索到所有的文章都會先發(fā)一通牢騷。另外,關(guān)于的亂碼問題,又是一個(gè)新的較長篇章。 關(guān)于解決Python亂碼問題的終極解決方案 (TL;DR) showImg(https://segmentfault.com/img/remote/1460000013229494?w=809&h=184); 有個(gè)特別好玩的現(xiàn)象...

    Lemon_95 評論0 收藏0
  • Python中文編碼問題

    摘要:使用中文替代中文中文編碼中文編碼中有以上兩種聲明字符串變量的方式,它們的主要區(qū)別是編碼格式的不同,其中,的編碼格式和文件聲明的編碼格式一致,而的編碼格式則是。 字符串是Python中最常用的數(shù)據(jù)類型,而且很多時(shí)候你會用到一些不屬于標(biāo)準(zhǔn)ASCII字符集的字符,這時(shí)候代碼就很可能拋出UnicodeDecodeError: ascii codec cant decode byte 0xc4 ...

    Cheriselalala 評論0 收藏0
  • 磨刀霍霍:我李漢三又回來寫代碼啦~

    摘要:常量中,通常用大寫的變量名表示常量。含有中文的無法用編碼,因?yàn)橹形木幋a的范圍超過了編碼的范圍,會報(bào)錯(cuò)。個(gè)中文字符經(jīng)過編碼后通常會占用個(gè)字節(jié),而個(gè)英文字符只占用個(gè)字節(jié)。 寫在前面的話不知不覺畢業(yè)已經(jīng)三年多了,現(xiàn)在的工作中,極少涉及代碼的工作。主要接觸的項(xiàng)目是BI的建設(shè),做的更多的類似產(chǎn)品經(jīng)理的工作,或者比較初級的數(shù)據(jù)分析的工作。因?yàn)闆]有美工和測試小伙伴,所以還額外承包了這兩項(xiàng)工作的我,偶...

    buildupchao 評論0 收藏0

發(fā)表評論

0條評論

最新活動(dòng)
閱讀需要支付1元查看
<