postgresql , 全角 , 半角 , 轉換 , ascii , chr , 編碼
<a href="http://blog.qdac.cc/?p=1289">http://blog.qdac.cc/?p=1289</a>
我們知道,客戶許多時候錄入資料時,并不注意輸入法是否是全角模式,然後就造成輸入的内容,有的是全角有的是半角,造成我們做分析統計時的不便,為此,編寫相應的函數。當然這個過程應盡量在前台完成,但如果針對已經存在的資料,下面提供的兩個函數就比較友善了。
1、全角轉換為半角函數
2、半角轉全角
适合utf8字元集。
例子
全角字元unicode編碼從65281~65374 (十六進制 0xff01 ~ 0xff5e)
半角字元unicode編碼從33126 (十六進制 0x21 0x7e)
空格比較特殊,全角為 12288(0x3000),半角為 32(0x20)
除空格外,全角/半角按unicode編碼排序在順序上是對應的(半角 + 65248 = 全角)
是以可以直接通過用+-法來處理非空格資料,對空格單獨處理。
chr()函數用一個範圍在range(256)内的(就是0~255)整數作參數,傳回一個對應的字元。
unichr()跟它一樣,隻不過傳回的是unicode字元。
ord()函數是chr()函數或unichr()函數的配對函數,它以一個字元(長度為1的字元串)作為參數,傳回對應的ascii數值,或者unicode數值。
根據以上規則,可以寫成全角半角轉換函數
<a href="https://www.biaodianfu.com/python-convert-between-unicode-fullwidth-halfwidth-characters.html">https://www.biaodianfu.com/python-convert-between-unicode-fullwidth-halfwidth-characters.html</a>