iT邦幫忙

0

Python 使用讀卡機 讀IC健保卡 印出來的名字是亂碼不是中文 # (Pyscard模組) #Raspberry pi 4

各位前輩好小弟使用Python讓讀卡機 讀健保卡 印出來的中文名字卻是亂碼

https://ithelp.ithome.com.tw/upload/images/20200529/20126577kUjh3coVIw.png
知道是Big5格式,上述已經設定了

各位前輩小弟小弟還是沒解決這問題我試圖用把字串從big5轉utf8 出現錯誤訊息
https://ithelp.ithome.com.tw/upload/images/20200618/20126577ACFUhAVNcR.png

#USB讀卡機
#樹莓派
#Pyscard模組
#Python3.7

nansen iT邦新手 3 級 ‧ 2020-05-29 11:23:56 檢舉
使用iconv轉換,原始byte編碼就是big5跟local 顯示調整無關
自己把讀取到的BUG5碼轉成UTF8編碼即可正常顯示

............對,我故意打成BUG5的,對LINUX而言,BIG5是天大的麻煩BUG
BIG5的雙字元組裡,會含有 \ 字元的情況不少,比如"許功蓋"先生!
盡早放棄BIG5做你的系統底層編碼吧,這堆衝碼的問題會讓你起笑

1 個回答

0
通靈亡
iT邦研究生 4 級 ‧ 2020-05-29 11:36:07

Python程式碼的第一行加上編碼聲明看看

# coding=Big5

或者參考看看這篇,做編碼的轉換處理
https://openhome.cc/Gossip/Encoding/Python.html

strVar.decode('big5')

coding=Big5

第一個方法
https://ithelp.ithome.com.tw/upload/images/20200529/20126577kJPxmGIbgr.png
是什麼原因呢

通靈亡 iT邦研究生 4 級 ‧ 2020-05-29 14:09:19 檢舉

建議你照japhenchen 說的方式,將big5的字串 轉成 UTF-8 處理

我要發表回答

立即登入回答