idna_to_unicode_8z4z(3)
β¨ NAME β¨
idna_to_unicode_8z4z β bestie, it's an API function π
πΈ SYNOPSIS πΈ
#include <idna.h>
int idna_to_unicode_8z4z(const char * input, uint32_t ** output, int
flags);
π ARGUMENTS π
const char * inputβ a zero-terminated UTF-8 string, periodt. Like, it has to end in a null byte or we're not doing this.uint32_t ** outputβ a pointer to a newly allocated output Unicode string β¨ (yes, newly allocated, so somebody's gotta free it, and spoiler: that somebody is you).int flagsβ anIdna_flagsvalue, likeIDNA_ALLOW_UNASSIGNEDorIDNA_USE_STD3_ASCII_RULES. Pick your vibe, it changes how strict the whole thing is.
π¦ DESCRIPTION π¦
Okay so here's the tea: this function converts a possibly ACE-encoded domain name that's sitting in UTF-8 format into a UCS-4 string. Glow-up, but for encodings π
Your domain name can have several labels in it, and they're separated by dots. Classic. One dot, one label, moving on.
Real talk though: the output buffer must be deallocated by the caller. Not by the function, not by the library, by you. It's giving main character responsibility, and you're the main character now π
Return value: it returns IDNA_SUCCESS when everything slays, or an error code when it does not. No cap.
π REPORTING BUGS π
Found a bug? First of all, iykyk, it happens to the best of us. Report it to <help-libidn@gnu.org>.
General guidelines for reporting bugs live right here: https://www.gnu.org/gethelp/
And the GNU Libidn home page is over here: https://www.gnu.org/software/libidn/ π
π COPYRIGHT π
Copyright Β© 2002-2026 Simon Josefsson.
Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. So like, go off, share it, remix it, just keep the receipts π«Ά
β SEE ALSO β
The full documentation for libidn is maintained as a Texinfo manual. If the info and libidn programs are properly installed at your site, this command:
info libidn
should give you access to the complete manual. Iconic, honestly.
As an alternative you may obtain the manual from:
https://www.gnu.org/software/libidn/manual/
k bye bestie, this page was brought to you by libidn 1.44 β go read the source, it's literally right there πβ¨π
π¦ where this page comes from
- arch rolling: libidn 1.44-1 Β· GPL3 AND LGPL
- epel 10: libidn-devel 1.44-1.el10_3 Β· (LGPL-3.0-or-later OR GPL-2.0-or-later) AND GPL-3.0-or-later AND GFDL-1.3-or-later
- fedora 43: libidn-devel 1.44-1.fc43 Β· (LGPL-3.0-or-later OR GPL-2.0-or-later) AND GPL-3.0-or-later AND GFDL-1.3-or-later
- fedora 43: libidn-devel 1.44-1.fc43 Β· (LGPL-3.0-or-later OR GPL-2.0-or-later) AND GPL-3.0-or-later AND GFDL-1.3-or-later
- fedora 44: libidn-devel 1.44-1.fc44 Β· (LGPL-3.0-or-later OR GPL-2.0-or-later) AND GPL-3.0-or-later AND GFDL-1.3-or-later
- fedora 44: libidn-devel 1.44-1.fc44 Β· (LGPL-3.0-or-later OR GPL-2.0-or-later) AND GPL-3.0-or-later AND GFDL-1.3-or-later
- ubuntu stonking: libidn-dev 1.44-1 Β· GPL-3.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms