天天看点

PostgreSQL全角、半角互相转换

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>

继续阅读