Decodificare con le risorse del API di Libidn i nomi di dominio internazionalizzati
Da Gambas-it.org - Wikipedia.
Versione del 20 gen 2024 alle 06:32 di Vuott (Discussione | contributi)
La libreria Libidn consente di codificare e decodificare nomi di dominio internazionalizzati, ossia nomi di dominio contenenti uno o più caratteri non ASCII.
Per poter fruire in Gambas delle risorse della libreria Libidn, bisognerà avere installata e richiamare la libreria condivisa: libidn.so.12.6.4
Mostriamo un semplice esempio per decodificare un nome di dominio internazionalizzato nel corrispondente etichetta ASCII. Se la decodifica ha successo, La sequenza originale di caratteri non-ASCII e la sequenza risultante ASCII sono etichette equivalenti.
Library "libidn:12.6.4" Private Const IDNA_SUCCESS As Integer = 0 ' int idna_to_ascii_lz (const char *input, char **output, int flags) ' Convert domain name in the locale's encoding to ASCII string. Private Extern idna_to_ascii_lz(idnin As String, idnout As Pointer, flags As Integer) As Integer ' const char *idna_strerror (Idna_rc rc) ' Convert a return code integer to a text string. Private Extern idna_strerror(rc As Integer) As String Public Sub Main() Dim s As String Dim p As Pointer Dim ris As Integer Print "Immettere dominio codificato (internazionalizzato):" Input s ris = idna_to_ascii_lz(s, VarPtr(p), 0) If ris > IDNA_SUCCESS Then Error.Raise("Decodifica in ASCII fallita (" & ris & "): " & idna_strerror(ris)) Print "\nRisultato:\n"; String@(p) End