看板 Python 關於我們 聯絡資訊
各位大大好 小弟在字碼轉換時遇到問題找不到解決方向 想請各位大大指點 有一些資料從資料庫撈出來後是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
kenduest: 要先看DB table 編碼用什麼,並且確認連線時候用哪種編 07/24 11:37
kenduest: 碼,最後才是搞考慮目前操作端要顯示若編碼不同的處理 07/24 11:37
tg70197: os.environ['NLS_LANG'] = 'AMERICAN_AMERICA.WE8ISO8859 07/24 11:41
tg70197: 已經知道編碼是什麼了,原本DB內就是存ASCII碼 07/24 11:42
tg70197: 所以才需要把ASCII轉成可以顯示的資料 07/24 11:43
AndCycle: 你如果要顯示在命令列你就要搞懂console編碼的問題 07/24 16:00
AndCycle: 如果你想快速解就先寫在檔案裡然後開筆記本去看 07/24 16:01
TitanEric: 推樓上 07/24 22:06
wintersxp: 樓上給的建議都不錯,但我認為你DB資料根本不是ascii 07/26 17:33
kenduest: 大概就是像是以往有人在mysql用latin1字集放big5編碼 07/28 22:47
alvinlin: 讀出文字檔後存成.html再試著用瀏覽器換不同碼解碼試試? 07/30 11:15