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

Da Gambas-it.org - Wikipedia.
 
(2 versioni intermedie di uno stesso utente non sono mostrate)
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 dinamica condivisa: ''libidn.so.12.6.3''
+
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.3"
+
  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()
+
  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):"
+
  Print "Immettere dominio codificato (internazionalizzato):"
  Input s
+
  Input s
 
    
 
    
  ris = idna_to_ascii_lz(s, VarPtr(p), 0)
+
  ris = idna_to_ascii_lz(s, VarPtr(p), 0)
  If ris > IDNA_SUCCESS Then Error.Raise("Decodifica in ASCII fallita (" & ris & "): " & idna_strerror(ris))
+
  If ris > IDNA_SUCCESS Then Error.Raise("Decodifica in ASCII fallita (" & ris & "): " & idna_strerror(ris))
 
    
 
    
  Print "\nRisultato:\n"; String@(p)
+
  Print "\nRisultato:\n"; String@(p)
 
    
 
    
  '''End'''
+
  End
Fare, ad esempio, la prova con il dominio internazionalizzato: ''www.oυτοπία.δπθ.gr''
+
Fare, ad esempio, la prova con il dominio internazionalizzato: 日本レジストリサービス.jp
 +
<BR>Quindi lanciare nella barra degli indirizzi web il risultato ottenuto dalla conversione.
  
  

Versione attuale delle 06:39, 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

Fare, ad esempio, la prova con il dominio internazionalizzato: 日本レジストリサービス.jp
Quindi lanciare nella barra degli indirizzi web il risultato ottenuto dalla conversione.



Riferimenti