python3,使用cx_oracle訪問oracle,資料庫和環境編碼都是gbk
多數資料都沒問題,有少數資料是歷史遺留問題,地址什么的里面本來就有亂碼,
這樣在fetchone的時候就會報錯,有什么辦法解決?
類似的代碼在python2的時候就沒問題,遷移到python3居然有這么大的坑,真是挺無語的。
uj5u.com熱心網友回復:
看看報錯資訊是什么, 是不是引號還是 \ 字符引起的。 如果是,可以考慮 select 地址欄位 時,直接用replace 消除掉這兩個符號。另外,可以考慮做下資料清洗, 把歷史資料做個處理, 一了百了。
uj5u.com熱心網友回復:
不是引號也不是什么特殊符號,就是極少數資料有亂碼,比如“????????”這樣。
資料太重要,而且錯的比較多,不敢改。再說就算改了將來也有可能會有新的這種亂碼啊。
python3這種真的挺麻煩的,類似的事情還比如一個gbk的文本檔案,需要讀進來做一些處理,然而有少數行是亂碼,讀入的時候就會出錯,要是按二進制讀進來,處理的時候又挺麻煩。
uj5u.com熱心網友回復:
試試 把 ascii 碼小于 32 的, 全部替換為空。轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/227370.html
上一篇:selenium抓取問題
