在 ASP .NET MVC 要輸出 UTF-8 CSV 檔案時被 BOM 給搞死了,還好有黑大,有黑大真好。
同時也有10000部Youtube影片,追蹤數超過2,910的網紅コバにゃんチャンネル,也在其Youtube影片中提到,...
utf-8中文編碼 在 コバにゃんチャンネル Youtube 的最讚貼文
utf-8中文編碼 在 大象中醫 Youtube 的最佳解答
utf-8中文編碼 在 大象中醫 Youtube 的最佳解答
utf-8中文編碼 在 中文編碼(encoding) - Using QGIS - 人口地圖繪製 的推薦與評價
如果用預設的編碼打開圖層,會出現亂碼。 在這些操作中,使用者需要知道檔案本身是用哪種編碼作儲存,否則就需要一個個測試。台灣常用的編碼包括Big5 及utf-8。 ... <看更多>
utf-8中文編碼 在 Re: [問題] 中文編碼的疑惑.. - 看板Python 的推薦與評價
※ 引述《milua (milua)》之銘言:
: 剛學習python
: print 中文的問題一直困擾著我
: 但又解決不了
: 我的ide 是 eclispe + pydev
: 我寫了一個test code為
: =========python code=======
: #-*- coding: utf-8 -*-
: print '科科'
: ===========================
: 存檔編碼,我是選utf8
: 用windows cmd 執行 出來的結果為
: 蝘?
因為在這裡你是用utf8去編python的檔案,'科科'被當做utf8編碼
#-*- coding: utf-8 -*-
print '科科'
print repr('科科')
蝘?
'\xe7\xa7\x91\xe7\xa7\x91'
這麼看來就明白了,因為ascii的普通str,應該會被直接輸出
沒有經過編碼,所以就直接等於用ascii來輸出utf8的內容
會有亂碼是理所當然的 這就等於直接印出binary的那串資料而已
你的windows console不會認得utf8的編碼,它是用cp950的方式去解碼
用cp950去解utf8 結果就會是亂碼
'\xe7\xa7' 可能剛好被解碼成cp950的 蝘 所以才看得到 其它就是一團糟
: 如果換成 print u'科科'
#-*- coding: utf-8 -*-
print u'科科'
print repr(u'科科')
如果是unicode的字串,就不一樣了,由於Python認得了它是unicode的字串
知道該用怎樣正確的方式把它解碼成unicode的字串
科科
u'\u79d1\u79d1'
並且,在print時,會依照sys.stdout.encoding去編碼字串
在你的環境,也就是cp950
u'\u79d1\u79d1' 就會被重編成 cp950編碼的 '科科'
這時候windows的console就認得了,因為它一直都是用cp950在解碼
cp950的碼c950來解 當然就沒問題
基本上Python都支援unicode了,就用unicode也就是u開頭的字串就好
如果非要讓非u開頭的字串也能正確印出來的話,那就將計就計
反正它被變成utf8,那就用utf8去解碼,轉成unicode
再印出來,像這樣
#-*- coding: utf-8 -*-
print '科科'.decode('utf8')
print repr('科科'.decode('utf8'))
可是這樣到頭來繞一圈都是一樣的,那何苦多繞一圈
就直接用unicode就可以了
--
哇咧咧 創意投票系統 https://walele.com
易記學 程式設計教學 https://ez2learn.com/
易記學 程式設計討論區 https://forum.ez2learn.com
VICTOR's 個人Blog https://blog.ez2learn.com/
財報分析王 https://victorlin.serveftp.org/stock/
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 118.170.81.119
... <看更多>