05
Nov
09

Web e problemi con le lettere accentate

Solitamente quando creiamo pagine web con form per l’inserimento di alcuni dati da parte dell’utente, ci troviamo di fronte al problema dei caratteri “speciali”, come le lettere accentate.
Capita spesso che il risultato che vediamo all’interno del nostro browser, sia differente da quello che ci aspettiamo.
Per esempio il carattere “à” (à) potrebbe essere rappresentato sullo schermo come “Ô (Ã). Questo e’ dovuto da un’errata codifica dei caratteri che puo’ avvenire a piu’ livelli.
Il percorso che fa il nostro dato contenente la lettera accentata generalmente e’ il seguente:

1) Inserimento del dato all’interno di un campo di testo (text e textArea) e invio attraverso la request HTTP;
2) Cattura del dato da parte del server (Tomcat) e successiva memorizzazione in una variabile;
3) Scrittura del dato all’interno del database;
4) Presentazione del dato nel browser.

In ognuno di questi quattro passaggi il carattere puo’ venir modificato, se non utilizziamo la giusta codifica dei caratteri.

Quindi per i punti 1) e 4) dobbiamo essere sicuri che il nostro browser utilizzi la codifica dei caratteri giusta. A seconda del browser l’opzione da modificare sara’ in posti diversi.
Per esempio in Firefox su Linux si trova in:

Preferenze di Firefox –> Contenuti –> Caratteri e colori –> Avanzate –> Codifica carattere predefinita.

Per il punto 2) dobbiamo andare a modificare il file server.xml di Tomcat, cercare il Connector che stiamo utilizzando ed aggiungere un parametro URIEncoding che permette al server di recuperare dalla request i caratteri con la codifica corretta.

<Connector port=”8084″ protocol=”HTTP/1.1″
URIEncoding=”UTF-8″
connectionTimeout=”20000″
redirectPort=”8443″
/>

Io qui utilizzo UTF-8, ma voi userete la codifica giusta a seconda del paese in cui vi trovate e del sistema operativo utilizzato.
Se non aggiungete questo parametro rischiate che, indipendentemente dal tipo di metodo che usate per l’invio della richiesta (GET o POST), non appena catturate il dato e lo salvate in una variabile, questo sara’ gia’ stato modificato. Mi spiego meglio. Ho un form di inserimento con un solo campo che si chiama “descrizione” e uso il metodo get per inviarlo.
Nel campo descrizione inserisco : “Problemi con qualche attività” e poi invio.
L’URL che mi si presenta nel browser sara’: http://www.miosito.it/pagina.jsp?descrizione=Problemi+con+qualche+attività – che finora e’ corretto.
Nel momento in cui con Java recupero il valore del parametro con

String descrizione = request.getParameter(“descrizione”);

e con un successivo

System.out.println(“La descrizione è : ” + descrizione);

il risultato che ci si presenta e’ il seguente:

La descrizione è : Problemi con qualche attivitÃ.

Se notate ho inserito una lettera accentata “è” nel codice e il valore di descrizione. Quello che ho inserito io tra i doppi apici si legge correttamente, mentre il valore recuperato dalla request e’ sbagliato.

Per il punto 3) dobbiamo controllare che a livello di database, tabella e ogni singolo campo la codifica sia impostata correttamente. In PHPMyAdmin (molto utile interfaccia web per gestire i vostri DB – se non lo conoscete provatelo!! Sito di phpmyadmin) abbiamo la possibilita’ di scegliere la “collazione” (Collation), e quindi impostarla come preferiamo.
Solitamente la collazione e’ impostata su “latin1_swedish_ci” che comprende anche le lettere italiane, quindi le accentate e solitamente non serve cambiarlo. Se preferite potere impostare “UTF-8_bin” per rendere il DB compatibile al 100% con Tomcat. Questo perche’ nel caso in cui vogliamo salvare caratteri per esempio giapponesi con latin1_swedish_ci non li vedremo e saranno sostituiti con dei punti di domanda.

Altro su UTF-8

07
Ott
09

upload mp3 su Youtube

Per poter caricare su Youtube un file .mp3 è neccessario convertire l’mp3 in un file video, che contenga almeno un’immagine.
Per poter fare questo, ho trovato su ubuntuforums.org uno script in python che, dati in input l’immagine che vogliamo mettere come video, la canzone che vogliamo convertire, e la durata in secondi del video, crea un ottimo file .avi che possiamo uploadare senza problemi su Youtube.
Lo script è scaricabile a questo link: http://www.mediafire.com/?xlwknhjes0n
Per eseguirlo diamo da terminale:
python convertMp3ToAvi.py [imagefile] [audiofile] [length in seconds]

15
Apr
09

problemi con nautilus-sendto / bluez-gnome

Da qualche tempo, dopo aver aggiornato bluez-gnome, l’opzione invia a.. di nautilus-sendto mi dava esclusivamente la possibilità di inviare i file tramite evolution, e non tramite obex (bluetooth).
Dopo averci sbattuto la testa per parecchio, ho capito che il problema è in un piccolo bug del pacchetto bluez-gnome.
Per risolverlo basta andare in Sistema -> Amministrazione -> Utenti e gruppi selezionare Manage Groups cercare il gruppo netdev andare su proprietà e selezionare l’utente/gli utenti per la quale si vuole attivare il supporto.
Fatto questo basta riavviare il pc, ed il gioco è fatto

06
Apr
09

Conficker ti ha infettato?

16
Set
08

System bell 2

Dopo aver disabilitato il system bell non ho avuto più problemi, fino a quando non ho aggiornato il kernel, e il fastidioso beep è tornato a farsi sentire, al momento dell’apertura della finestra di login, e se il sistema veniva spento/riavviato da shell.

A questo punto ho sistemato, spero definitivamente, il tutto aggiungendo a:
/etc/modprobe.d/blacklist

la stringa

blacklist snd_pcsp

:-)

15
Mag
08

script per controllare l’inserimento di valore numerici in una form

Ecco un altro script che permette di controllare che in un campo di una form, l’utente inserisca solamente valori numerici.
Continua a leggere ’script per controllare l’inserimento di valore numerici in una form’

15
Mag
08

script per controllare l’inserimento di campi non vuoti in una form

Ecco uno script per le form, che controlla che i campi inseriti dall’utente non siano vuoti, ne riempiti esclusivamente con spazi bianchi.
Continua a leggere ’script per controllare l’inserimento di campi non vuoti in una form’

15
Mag
08

dividere un file in tanti file più piccoli

Il comando split è molto utile per chi ha bisogno di dividere un file in diversi file di dimensione minore.

Per esempio se abbiamo la necessità di spostare un generico file prova.avi, di dimensione maggiore alla capacità disponibile del nostro supporto (esempio un cd da 700 mb), dividiamo il file con:

split -b700m prova.avi provaridimensionata.avi.

con l’opzione -b indichiamo la dimensione che vogliamo ottenere.

In questo modo ci verranno creati dei file provaridimensionata.avi.aa provaridimensionata.avi.ab provaridimensionata.avi.ac che poi, possiamo riunire in un unico file con il comando cat

cat provaridimensionata.avi.* > prova_riunita.avi

;)

12
Apr
08

kernel di Windows Vista

Girovagando per il web ho trovato questo “pezzo di kernel” di Vista, e mi sembrava divertente pubblicarlo. :-)

/*
TOP SECRET Microsoft(c) Project:Longhorn(TM) SP1
Estimated release date:2008
*/
#include “win95.h”
#include “win98.h”
#include “leopard.h”
char chew_up_some_ram[10000000];
void main () {
while (!CRASHED) {

if (first_time_install) {
make_10_gigabyte_swapfile();
do_nothing_loop();
search_and_destroy(FIREFOX | OPENOFFICEORG | ANYTHING_GOOGLE);
hang_system();
}

if (still_not_crashed) {
basically_run_windows_xp();
do_nothing_loop();
}
}

if (!DX10GPU()) {
set_graphics(aero, very_slow);
set_mouse(reaction, sometimes);
}

// printf(”Welcome to Windows 2000″);
// printf(”Welcome to Windows XP”);
printf(”Welcome to Windows Vista”);

while (something) {
sleep(10);
get_user_input();
sleep(10);
act_on_user_input();
sleep(10);
flicker_led_promisingly(hard_disk);
}

creat_general_protection_fault();
}

:-D :-D

Fonte

06
Apr
08

Cambiare l’etichetta di un supporto rimovibile

Per poter cambiare l’etichetta di una penna usb, ci basta aver installato il pacchetto mtools.
sudo apt-get install mtools

A questo punto dobbiamo modificare il file di configurazione.
gedit /etc/mtools.conf
e inseriamo in fondo alla pagina la stringa:
mtools_skip_check=1

Ora copiamo il file di configurazione nella nostra home:
cp /etc/mtools.conf ~/.mtoolsrc
Continua a leggere ‘Cambiare l’etichetta di un supporto rimovibile’