首页 > 解决方案 > Postgresql 将日文全角转换为半角

问题描述

我正在处理日语数据,在一些日语单词中,有英语单词和数字。

SYSKEN、松井ケ丘3、コメリH&G、筱路7-1就是例子。

我想通过抛出一个函数或任何可能的方式将这些英文和数字全角转换为半角。

上面输入的输出应该类似于“SYSKEN, 松井ケ丘3, コメリH&G, 筱路7-1”

如果有人知道最好的开始方式,我将不胜感激。

标签: cjk

解决方案


使用 translate() 函数怎么样?

-- prepare test data
CREATE TABLE address (
    id integer,
    name text
);
INSERT INTO address VALUES (1, 'SYSKEN, 松井ケ丘3, コメリH&G, 篠路7-1');

-- show test data
SELECT * from address;

-- convert Full-Width to Half-Width Japanese
UPDATE address SET name = translate(name,
    '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ',
    '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ'
);

-- see the converted data
SELECT * from address;

该代码将名称栏改为“SYSKEN,松井ケ丘3,コメリH&G,筱路7-1”。


推荐阅读