[Gfoss] importazione shape con caratteri misti latino/cirillico in SpatiaLite

Matteo Ghetta matteo.ghetta a gmail.com
Mer 11 Feb 2015 21:16:04 CET


Ciao sandro,
risposta chiarissima..
Avevo sperato di non aver creato un ibrido mostruoso... :-)

Mi ci metterò di buona lena..

Grazie

Matteo
Il giorno 11/feb/2015 18.45, <a.furieri a lqt.it> ha scritto:

> Ciao Matteo,
>
> il probeblema del charset non e' poi troppo complesso, basta solo
> avere ben presente come funziona.
>
> nella notte dei tempi (prima di MS-DOS) c'era solo ASCII (o piu'
> di preciso l'US-ASCII); funzionava benissimo, ma poteva codificare
> solo ed esclusisavamente l'alfabeto anglo-americano: lettere
> maiuscole e minuscole, numeri, parentesi ed interpuzioni.
> gia' le vocali accentante italiane erano escluse.
>
> con MS-DOS arrivano le "code pages"; nascono cosi' un visibilio
> di nuovi charsets nazionali: c'e' quello tedesco con gli umlaut,
> quello latino con le vocali accentate, quello cirillico, graco,
> ebraico etc.
> restano ancora fuori le lingue asiatiche (cinese e giapponese),
> perche' non sono alfabatiche ma sillabiche; hanno decine di migliaia
> di simboli ed in un solo byte non ci stanno proprio.
> naturalmente nasce anche una enorme confusione, perche' a questo
> punto il medesimo byte puo' significare tante lettere diverse;
> per conservare fedelmente le informazioni occorre sempre sapere
> con estrema precisione quale particolare tabella dei caratteri
> deve essere utilizzata.
>
> in tempi piu' recenti finalmente arrivano i charsets universali:
> tipicamente Unicode ed UTF-8; questi finalmente ti consentono
> di scrivere assieme in una medesima stringa parole latine, ebraiche,
> arabe, cirilliche e persino cinesi e giapponesi.
>
> Giusto per facilitarci la vita, Linux e Mac (e piu' o meno tutti
> gli Unix) scelgono UTF-8; Windows invece sceglie Unicode.
> ma Windows fatica persino a recepire Unicode, e per lungo tempo
> preferisce continuare a basarsi su tanti charset nazionali
> distinti: Latin-1, Latin-2, Arabic, Cyrillic etc
> System non e' affatto un charset: significa semplicemente
> "quello normale della piattaforma"; ergo Latin-1 sulle istallazioni
> italiane, Cyrillic in quelle russe etc
> e nota bene: i charsets di Windows non sono affatto i "code pages"
> di ms-dos anche se spesso il nome e' identico; tecnicamente sono
> diversi (ed ovviamente incompatibili).
>
> veniamo ora finalmente al problema shapefile/spatialite.
> sqlite internamente memorizza tutte le stringhe di testo in UTF-8,
> quindi e' in grado di gestire qualsiasi lingua nota.
> ma quando importi/esporti uno shapefile devi sempre specificare
> esattamente quale charset deve essere utilizzato per convertire
> i caratteri; se sbagli ottieni errori, ma piu' facilmente ancora
> ottieni stringhe bizzarre ed illeggibili.
>
>
>  Ora, avendo bisogno di mostrare le etichette dei nomi delle città in
>> QGIS, a volte ho modificato a mano la colonna del nome interessato
>> trasformando il cirillico in caratteri latini leggibili.
>>
>>
> temo che la "chiave del mistero" si nasconda proprio qua; in
> questo modo hai probabilmente creato un mostro, cioe' un DBF
> in cui alcune strignhe sono codificate in Latin-1, mentre altre
> sono invece codificate in Cyrillic.
> visto che spatialite (e qualunque altro sw a me noto) partono
> sempre dal presupposto che tutto il file per intero adotti solo
> una singola codifica, ora qualunque filtro charset fallira':
> se gli dici che e' Latin-1 verranno sbagliate tutte le scritte
> in Cirillico; se gli dici che e' Cyrillic verranno sbaglate
> tutte le scritte latine; non se ne esce :-D
>
> nota bena: e' un papocchio tipico degli Shapefile su cui sono
> state fatte modifiche "a mano"; per rimettere tutto a posto
> esiste un unico modo: olio di gomito e correggere manualmente
> e con santa pazienza tutte le inconsistenze una alla volta,
> fino a che si riesce a riportare tutto il DBF in un singolo
> charset.
>
> auguri ed in bocca al lupo
> Sandro
> _______________________________________________
> Gfoss a lists.gfoss.it
> http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
> Questa e' una lista di discussione pubblica aperta a tutti.
> I messaggi di questa lista non hanno relazione diretta con le posizioni
> dell'Associazione GFOSS.it.
> 666+40 iscritti al 5.6.2014
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: <http://lists.gfoss.it/pipermail/gfoss/attachments/20150211/53a19597/attachment-0001.html>


Maggiori informazioni sulla lista Gfoss