Differenze tra le versioni di "Decodificare con le risorse del API di Libidn i nomi di dominio internazionalizzati"
Da Gambas-it.org - Wikipedia.
Riga 1: | Riga 1: | ||
La libreria '''Libidn''' consente di codificare e decodificare nomi di dominio internazionalizzati, ossia nomi di dominio contenenti uno o più caratteri non ASCII. | 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 | + | 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. | 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. | + | Library "libidn:12.6.4" |
Private Const IDNA_SUCCESS As Integer = 0 | Private Const IDNA_SUCCESS As Integer = 0 | ||
Riga 18: | Riga 18: | ||
− | + | Public Sub Main() | |
Dim s As String | Dim s As String | ||
Riga 24: | Riga 24: | ||
Dim ris As Integer | 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 | |
− | |||
− | |||
Versione delle 06:32, 20 gen 2024
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