idna_to_unicode_4z4z(3)

πŸ’– idna_to_unicode_4z4z β€” the libidn glow-up page πŸ’–

okay bestie, so this one lives in the libidn manual, section 3 (that's the library-functions girlies, not the shell-command ones) πŸŽ€


✨ NAME ✨

idna_to_unicode_4z4z β€” it's an API function, bestie. that's the whole name. short, sweet, slays πŸ’…


🌸 SYNOPSIS 🌸

#include <idna.h>

int idna_to_unicode_4z4z(const uint32_t * input, uint32_t ** output, int
flags);

yes, the flags is on its own line like that. it's giving "i ran out of room and i'm not sorry" 😭 iconic behaviour honestly


πŸ¦‹ ARGUMENTS πŸ¦‹

  • const uint32_t * input β€” a zero-terminated Unicode string. that's the thing you're handing over. it's const, so hands off, don't touch, respect her boundaries πŸ™ˆ
  • uint32_t ** output β€” a pointer to a newly allocated output Unicode string. note the double star, bestie β€” that's a pointer-to-a-pointer, meaning this function is gonna write a pointer for you. she's making you something fresh ✨
  • int flags β€” an Idna_flags value, like IDNA_ALLOW_UNASSIGNED or IDNA_USE_STD3_ASCII_RULES. pick your vibe, choose your fighter πŸ’œ

🌈 DESCRIPTION 🌈

so what she actually does: she converts a possibly ACE-encoded domain name in UCS-4 format into a UCS-4 string. lowkey a glow-up, converting her from one form to another πŸ‘‘

and the domain name may contain several labels, separated by dots. you know, the whole something.something.something situation πŸ“

the important bit, fr fr: the output buffer must be deallocated by the caller. that means you free it. she allocated it, but she is NOT cleaning up after you. that's your job now, bestie. no cap πŸ’€

Return value: returns IDNA_SUCCESS on success, or an error code. so check it. always check it. main character energy means reading your return values πŸ’…


😭 REPORTING BUGS 😭

found a bug? not me gatekeeping the bug reports β€” tell the people:

they wanna hear from you, fr fr 🫢


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.

(translation: share it, remix it, whatever β€” just keep the receipts, bestie 🧚)


πŸ’œ 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, the command

info libidn

should give you access to the complete manual. and if that's not hitting, as an alternative you may obtain the manual from:

https://www.gnu.org/software/libidn/manual/

iykyk β€” the info page is right there, go read her πŸ“–βœ¨


and that's the whole page, babe! this one's from libidn version 1.44, the idna_to_unicode_4z4z(3) era, and it's serving UCS-4 realness πŸŒΈπŸ¦‹ stay converting, stay freeing your buffers, and don't you dare forget that output deallocation πŸ’– mwah πŸ’…

πŸ“¦ where this page comes from