Differenze tra le versioni di "Decodificare con le risorse del API di Libind i nomi di dominio internazionalizzati"

Da Gambas-it.org - Wikipedia.
(Creata pagina con "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...")
 
 
(Una versione intermedia di uno stesso utente non è mostrata)
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.
+
#REDIRECT [[Decodificare con le risorse del API di Libidn i nomi di dominio internazionalizzati]]
 
 
Per poter fruire in Gambas delle risorse della libreria ''Libidn'', bisognerà avere installata e richiamare la libreria dinamica condivisa: ''libidn.so.11.6.11''
 
 
 
 
 
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:11.6.11"
 
 
Private Const IDNA_SUCCESS As Integer = 0
 
 
<FONT Color=gray>' ''int idna_to_ascii_lz (const char *input, char **output, int flags)''
 
' ''Convert domain name in the locale's encoding to ASCII string.''</font>
 
Private Extern idna_to_ascii_lz(idnin As String, idnout As Pointer, flags As Integer) As Integer
 
 
<FONT Color=gray>' ''const char *idna_strerror (Idna_rc rc)
 
' ''Convert a return code integer to a text string.''</font>
 
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 String@(p)
 
 
 
'''End'''
 
Fare, ad esempio, la prova con il dominio internazionalizzato: ''www.oυτοπία.δπθ.gr''
 
 
 
 
 
 
 
 
 
=Riferimenti=
 
* http://www.gnu.org/software/libidn/
 
* http://linux.die.net/man/3/idna_to_ascii_lz
 
* https://it.wikipedia.org/wiki/Nome_di_dominio_internazionalizzato
 

Versione attuale delle 16:31, 16 set 2022