计算国际域名的长度抛出SQL(PostgreSQL)

时间:2011-07-28 13:09:20

标签: sql postgresql idn

我有几个域名以idn格式(“xn--”)保存在数据库中。我想运行一些统计查询,但是在计算这些域名上的字符时会遇到问题

SELECT
    dom_name,
    char_length(dom_name) as raw_length, -- counted with zone extension for now
FROM
    my_domains_table;

当然我对“xn--”域名有误,我想从sql中获取数(不使用php或其他语言)。

或者,请给我一些建议如何做得更好。

- 首先将UTF-8中的域名保存到表中会很棒,但现在这不是一个选项:)

1 个答案:

答案 0 :(得分:2)

如果您可以将不受信任的语言安装到您的数据库,例如PL/PerlUPL/PythonU,那么您可以使用punycode_decode perl创建Net::IDN::Encode函数模块或decode('idna') python字符串类成员函数。

如果不这样做,那么你需要使用pl / pgsql来实现它,这并不容易。