[問題] 字串轉碼問題

看板Python作者 (alex)時間6年前 (2019/07/24 11:08), 編輯推噓1(1010)
留言11則, 6人參與, 6年前最新討論串1/1
各位大大好 小弟在字碼轉換時遇到問題找不到解決方向 想請各位大大指點 有一些資料從資料庫撈出來後是ASCII碼 但顯示是亂碼 小弟需要將它轉換成正常可讀的字碼 煩請各位大大協助 程式如下: cur.execute(sql) rows = cur.fetchall() for row in rows: print(row[0]) con.close() 顯示為: https://imgur.com/BoXNvK0
資料庫原是內容為: https://imgur.com/v754Wvu
有嘗試轉碼 for row in rows: print(bytes(row[0], encoding='ASCII').decode('UTF8')) con.close() 但出現 UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-29: ordinal not in range(128) 查了一些資料設定字元為UTF8 我本來就都是UFT8 print(sys.getdefaultencoding()) print(sys.stdin.encoding) print(sys.stdout.encoding) print(sys.stderr.encoding) 請問有其他方法嗎? 感謝各位 -- 大姐:這顆Seagate外包裝彩盒標明160G,但我拿回家試怎麼只有152?<(‵^′)>氣! 我 :啊,是這樣的,科學計算方式是XXX (省略N字)~( ̄▽ ̄||)> 大姐:你事前又沒講清楚!我們明明說好是160G,現在拿到了152,就是你蓄意隱瞞! 故意不揭露事實, 有詐騙的嫌疑!...(一千字)...(╯‵□′)╯︵ ┴─┴ 大姐男友:同學,我跟你講,這個社會人外有人,不要以為我們對硬體不了解 <( ̄︶ ̄)> 做人要腳踏實地,這種黑心錢不能賺,年紀輕輕就有前科,你將來怎麼做人?( ′-`)y-~ -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 59.115.145.169 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1563937693.A.F40.html

07/24 11:37, 6年前 , 1F
要先看DB table 編碼用什麼,並且確認連線時候用哪種編
07/24 11:37, 1F

07/24 11:37, 6年前 , 2F
碼,最後才是搞考慮目前操作端要顯示若編碼不同的處理
07/24 11:37, 2F

07/24 11:41, 6年前 , 3F
os.environ['NLS_LANG'] = 'AMERICAN_AMERICA.WE8ISO8859
07/24 11:41, 3F

07/24 11:42, 6年前 , 4F
已經知道編碼是什麼了,原本DB內就是存ASCII碼
07/24 11:42, 4F

07/24 11:43, 6年前 , 5F
所以才需要把ASCII轉成可以顯示的資料
07/24 11:43, 5F

07/24 16:00, 6年前 , 6F
你如果要顯示在命令列你就要搞懂console編碼的問題
07/24 16:00, 6F

07/24 16:01, 6年前 , 7F
如果你想快速解就先寫在檔案裡然後開筆記本去看
07/24 16:01, 7F

07/24 22:06, 6年前 , 8F
推樓上
07/24 22:06, 8F

07/26 17:33, 6年前 , 9F
樓上給的建議都不錯,但我認為你DB資料根本不是ascii
07/26 17:33, 9F

07/28 22:47, 6年前 , 10F
大概就是像是以往有人在mysql用latin1字集放big5編碼
07/28 22:47, 10F

07/30 11:15, 6年前 , 11F
讀出文字檔後存成.html再試著用瀏覽器換不同碼解碼試試?
07/30 11:15, 11F
文章代碼(AID): #1TDykTz0 (Python)
文章代碼(AID): #1TDykTz0 (Python)