Seleziona una pagina

 

Chi lavora costantemente con i codici, come il SEO Specialist o il Web Developer, sa sicuramente cosa significa imbattersi nei non ASCII characters e cosa comporti la loro gestione.

non ascii character codificaSe da un lato, infatti, abbiamo una risorsa inestimabile come gli ASCII characters, che consentono di inserire in poche mosse i caratteri speciali nei testi o di inviare comandi, dall’altro c’è un sistema di codici, i non ASCII characters per l’appunto, che costituiscono un problema non da poco per tutti coloro che lavorano nel settore della programmazione. 

Per costruire un buon sito web e ottimizzarlo nel migliore dei modi, è fondamentale saper lavorare con il codice di programmazione e conoscere la differenza tra i caratteri ASCII e non ASCII. Dal punto di vista teorico, le caratteristiche distintive tra le due tipologie di codice potrebbero essere scontate, ma sapere come funzionano e riuscire a gestirle è fondamentale ai fini di un buon posizionamento in SERP di un sito web. A tal proposito, per imparare a realizzare al meglio un sito, sia in termini di struttura che di contenuti, ti suggerisco la Certificazione SEO Specialist, il percorso teorico-pratico che ti permette di acquisire competenze utili per posizionare il tuo sito web più in alto su Google rispetto ai tuoi concorrenti.

Questo articolo ti fornirà qualche base teorica sul mondo dei codici e ti porterà alla scoperta dei caratteri ASCII. Nello specifico, capirai che cosa sono i non ASCII characters e come si rimuovono per ottimizzare al meglio un website. 

 

Cosa sono i non ASCII characters? 

Per spiegare cosa sono i non ASCII characters bisogna partire dal principio raccontandone la loro elaborazione. L’acronimo ASCII deriva da American Standard Code for Information Interchange introdotto nel 1963. Questo nome fu scelto per denominare il sistema di codifica dei caratteri a 7 bit che permetteva la rappresentazione di ben 128 caratteri e dava la possibilità di dare specifici comandi ai computer e convertire le informazioni in formati digitali standardizzati. Questo sistema venne utilizzato nei calcolatori, nei sistemi operativi dei sistemi informatici e, più generalmente, nei computer. 

Immagino tu ti stia domandando che cosa sia la codifica dei caratteri a 7 bit, vero? Prima di tutto, per bit si intende l’informazione di tipo digitale. Il codice ASCII standard utilizza sette cifre di numeri binari (bit), ovvero costituiti da varie sequenze di 0 e 1. Il codice ASCII arriva a rappresentare ben 128 caratteri diversi, perché esistono 128 combinazioni possibili di sette 0 e 1. Per farti un esempio, la sequenza 1010000 rappresenta banalmente una lettera “P” maiuscola. 

Successivamente, per rispondere alle esigenze più complesse, venne aggiunto un bit che permise si estendere il codice ASCII a 256 caratteri. Al momento, il sistema maggiormente utilizzato è Unicode. Si tratta di una nuova codifica che permette di poter codificare in modo standard e consente di utilizzare un set di caratteri più estesi che comprendono anche il greco e il cirillico. Questa tipologia di codice può essere programmato con variabili che vanno da 32, 16 e 8 bit e permette di codificare tutte le lingue. Inoltre, supporta anche l’inserimento dei caratteri che appartengono all’alfabeto Braille e le famose emoticon. 

Che cos’è, quindi, il codice non ASCII? Per farlo riprendo la distinzione fatta dall”Emacs, un editor di testo libero popolare tra i programmatori. In particolare, questo editor ha due metodi per rappresentare il testo in una stringa o in un buffer. Queste due tipologie si chiamano unibyte e multibyte e ogni stringa di testo utilizza una di queste due rappresentazioni:

  • nell’unibyte, ciascun carattere occupa un byte, perciò i codici carattere vanno esattamente da 0 a 255. In particolare, i codici da 0 a 127 sono definiti caratteri ASCII, mentre i codici da 128 a 255 vengono definiti non ASCII
  • nel multibyte, ogni carattere può occupare più di un byte e può memorizzare un’intera gamma di codice Emacs. In particolare, il primo carattere multibyte é sempre compreso nell’intervallo tra 128 e 159. I byte successivi del multibyte sono situati nell’intervallo tra 160 e 255. 

I non ASCII characters sono, quindi, l’estensione del codice ASCII standard. Comprendono tutti quei caratteri speciali di determinati Paesi che presentano un tipo di scrittura particolare, come potrebbero essere quelli nativi giapponesi, cinesi o coreani, oppure più banalmente sono i caratteri che presentano vocali accentate, simboli semigrafici o altre tipologie di grafemi.

 

Hai la stoffa per diventare un SEO Specialist con i fiocchi? Scoprilo con un test!

Test SEO Specialist

 

Differenza tra ASCII e non ASCII characters

Qual è la differenza tra caratteri ASCII e non ASHII? Molto semplicemente, i primi sono i caratteri standard mentre i secondi sono caratteri speciali di uso poco comune.

Nel paragrafo precedente ti ho spiegato che gli ASCII characters sono costituiti da 128 caratteri. Tale gamma può essere divisa in varie sezioni; in particolare si ritrovano i caratteri:

  • non ascii character codicedi comando (da 0 a 31 e il numero 127): sono i cosiddetti caratteri non stampabili che vengono utilizzati per inviare comandi al PC
  • speciali (da 32 a 47, da 58 a 64, da 91 a 96 e da 123 a 126): sono i caratteri stampabili che non corrispondono esattamente a numeri e lettere, ma corrispondono ai segni di punteggiatura. In questo campo rientra anche lo spazio, nonostante non sia visibile ma viene ritenuto un carattere stampabile
  • che indicano le cifre (da 30 a 30): permette di creare tutte le 10 cifre arabe da 0 a 9
  • che indicano le lettere (da 65 a 90 e da 97 a 122): il primo gruppo permette di creare le lettere maiuscole, mentre il secondo gruppo le lettere minuscole.

Se vuoi inserire un carattere o un simbolo che é presente sulla tastiera utilizzando gli ASCII characters ti basterà tenere premuto il tasto “Alt” e digitare il codice numerico corrispondente. Per farti un esempio: vuoi inserire la chiocciola in un testo? Tieni premuto il taso “Alt” e digita 64 e otterrai esattamente il carattere che desideri! Vorresti inserire un’emoticon? Ti basta premere “Alt” + 1 per ottenere un bello smile!

Se, invece, vorresti inserire dei caratteri e simboli che non sono presenti sulla tastiera o sui dispositivi mobili dovrai prendere in considerazione alcune scorciatoie basate sul sistema di codifica Unicode di cui ti ho parlato prima, il quale contiene sia i caratteri ASCII, sia altre tipologie di caratteri. 

I non ASCII characters sono tutti i caratteri che vanno dal numero 128 al 255, i quali consistono nella cosiddetta estensione del codice ASCII. Come accennato in precedenza, questo range comprende tutti quei grafemi particolari e di uso non comune che appartengono alle lingue orientali o a particolari tipologie di alfabeti. In alcuni casi, i non ASCII characters possono creare problemi e vanno rimossi per ripulire il codice di un sito web.

 

Acquisisci le competenze necessarie per diventare un SEO Specialist professionista

PARTI DA QUI

 

Come rimuovere un non ASCII character

Perché bisogna eliminare i non ASCII characters? L’utilizzo dei non ASCII characters dipende dal contesto culturale in cui ci si trova, proprio perché sono segni grafici che appartengono a determinati alfabeti. Spesso questa tipologia di caratteri può creare problemi; per questo é necessario disporre di un buon software di programmazione che possa risolvere tutti gli eventuali disguidi di codifica dovuti all’utilizzo di questi caratteri. Per farti un esempio, é sempre meglio evitare l’utilizzo di non ASCII characters negli URL, soprattutto se punti ad avere un URL che sia SEO friendly, pulito e lineare.

eliminare non ascii characterProprio per questo motivo, molto spesso si agisce sul codice per eliminare i non ASCII characters che potrebbero influenzare negativamente la posizione del sito o compromettere il codice. Sicuramente é questo l’obiettivo di un esperto della SEO, il quale cercherà di ottimizzare al meglio il website dell’azienda per cui lavora per garantirne il successo. 

Presta attenzione però a un aspetto molto importante: non tutti i non ASCII characters sono “cattivi” e vanno eliminati. È importante, invece, considerare il contesto in cui vengono utilizzati. Per esempio, se stai scrivendo un testo in lingua cinese, sarà inevitabile utilizzare gli ideogrammi che derivano dai caratteri non ASCII. 

Per rimuovere i non ASCII characters bisogna saper maneggiare con cura il codice e, ovviamente, esserne un esperto. Per rimuovere i caratteri non validi da una stringa dovrai saper utilizzare formule e numeri con destrezza.

Le modalità sono molteplici e spesso dipendono dal tipo di scrittura e lettura del file dati. Se per esempio stai leggendo il file in R, la scelta migliore sarebbe quella di mantenere questa modalità dallo studio dei dati grezzi fino al prodotto finale. In alcuni casi, per esempio, possono esistere alcuni pacchetti o funzioni che consentono di eliminare i caratteri non ASCII con molta facilità. In alcuni casi basterà inserire un’espressione per individuare i non ASCII characters e rimuoverli, in altri alcuni pacchetti informatici potrebbero accorrere in tuo aiuto. 

Ti mostrerò ora alcuni metodi comuni per eliminare i non ASCII characters dalla tua stringa.

 

Individua i caratteri non ASCII

Il primo passo per eliminare i non ASCII characters é individuarli. Per scoprire se il tuo file contiene questa tipologia di caratteri, potresti adottare le seguenti espressioni: 

Do *any* lines contain non-ASCII characters?
any(grepl(“I_WAS_NOT_ASCII”, iconv(x, “latin1”, “ASCII”, sub=”I_WAS_NOT_ASCII”)))

Find which lines (e.g. read in by readLines()) contain non-ASCII characters 
grep(“I_WAS_NOT_ASCII”, iconv(x, “latin1”, “ASCII”, sub=”I_WAS_NOT_ASCII”))

Stai lavorando con Notepad ++? Puoi utilizzare semplicemente questa espressione che cercherà i valori non ASCII per te: [^\x00-\x7F]+

Ti basterà spuntare la voce “modalità di ricerca = espressione regolare” e cliccare sul pulsante Find Next. In alternativa, potrai selezionare nel menu la voce “Cerca” e successivamente “trova caratteri nell’intervallo” e fare tap sulla voce “Caratteri non ASCII (128-255)”. In questo modo potrai scorrere lungo il testo e scovare tutti i caratteri non ASCII. 

Trovati tutti i non ASCII characters, non dimenticare di utilizzare una funzione che li evidenzi o che inserisca un segnalibro in una delle righe di testo che contengono questa tipologia di carattere. In questo modo potrai tenerne traccia e non perderli nel marasma del codice.

 

Gli specialisti della SEO libera professione sono sempre più richiesti dalle aziende.
Scopri come diventare freelance partecipando al webinar gratuito
webinar come diventare freelance

 

Usa un’espressione positiva o negativa di rimozione

Per rimuovere i non ASCII characters é possibile utilizzare due tipologie di espressioni, dette positive o negative. Utilizzare un’espressione positiva di rimozione significa esprimere direttamente quali caratteri rimuovere. Al contrario, un’espressione negativa di rimozione indica quali caratteri del codice non rimuovere. Nel primo caso la formula corrisponde a:

textContent = textContent.replace(/[\u{0080}-\u{FFFF}]/gu,””); 

Per quanto riguarda la formula negativa, invece, devi scrivere:

textContent = textContent.replace(/[^\x00-\x7F]/g,””);

Da che cosa si differenzia la prima formula rispetto alla seconda? Per spiegartela parto dal significato dei simboli: l’accento circonflesso presente nella seconda espressione indica la parola “non”, mentre la scrittura “\x00-\x7F” sta per “ASCII”. L’unione delle due scritture e, di conseguenza, delle due parole, indica la locuzione “non ASCII”. Ed ecco come ottenere un’affermazione negativa per la rimozione dei non ASCII characters, particolarmente indicata per chi parla e utilizza la lingua inglese. Tieni a mente, inoltre, che in entrambi i casi é stata utilizzato il sistema di codifica Unicode, ovvero il tipo di encoding universale. 

 

Utilizza i pacchetti informatici 

Per eliminare i non ASCII characters é possibile utilizzare diverse tipologie di pacchetti. I pacchetti informatici, nel gergo di settore, indicano una sequenza finita di dati che vengono trasmessi su una rete, un canale o una linea di comunicazione. Più genericamente sono sequenze di bit modulati in modo numerico al fine di venire trasmessi sul canale fisico. 

Nel tuo caso, ti presenterò il pacchetto Stringi, il quale ti fornirà una funzione per convertire il testo in Unicode generale, permettendoti di preservare buona parte del testo originale.

x <- c(“Ekstr\u00f8m”, “J\u00f6reskog”, “bi\u00dfchen Z\u00fcrcher”)
x
#> [1] “Ekstrøm” “Jöreskog” “bißchen Zürcher”

stringi::stri_trans_general(x, “latin-ascii”)
#> [1] “Ekstrom” “Joreskog” “bisschen Zurcher”

Il pacchetto Stringi non è l’unica opzione. Esistono molte altre soluzioni che puoi utilizzare per sbarazzarti dei non ASCII characters presenti nel tuo testo. Un’alternativa é costituita dall’utilizzo del pacchetto Xfun con filter da dplyr.

 

Conclusioni e richiesta di maggiori informazioni 

Come hai potuto notare eliminare i non ASCII characters non é un gioco da ragazzi: bisogna saperli individuare e trovare il giusto metodo per poterli rimuovere, prendendo in considerazione anche gli strumenti di cui si dispone. Ricordiamo, tuttavia, che non é sempre necessario eliminare questa tipologia di caratteri: bisogna valutare il contesto culturale in cui ci si trova e quale lingua si sta utilizzando. 

In generale, però, togliere i non ASCII characters é una buona pratica per mantenere pulito il testo del codice e migliorare il posizionamento dei propri siti web. Insomma, si tratta di una delle best-practice migliori che ogni SEO copywriter dovrebbe utilizzare per svolgere al meglio il proprio lavoro.

 

Affidati a un esperto per capire come ottimizzare al meglio il tuo sito web!

CONSULENZA GRATUITA ONE-TO-ONE

 

Ti potrebbero interessare anche i seguenti articoli:

consulente seo chi è seo on page cos'è e come si fa in 10 passi seo copywriting guida