Длина подсчета международного имени домена, выбрасываемого SQL (PostgreSQL)
У меня есть несколько доменных имен, сохраненных в базе данных в формате 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 ответ
Если вы можете установить ненадежные языки в вашу базу данных, как PL/PerlU
или же PL/PythonU
тогда вы можете создать punycode_decode
использовать функцию Net::IDN::Encode
модуль Perl или decode('idna')
Функция-член класса строки Python.
Если вы этого не сделаете, то вам нужно будет реализовать это с помощью pl/pgsql, что будет непросто.