[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [linux_var] Simbolo grado centigrado
On 2016-04-23 at 10:25:52 +0200, Felice.ferrazza wrote:
> Capite? il simbolo di grado viene visualizzato correttamente ma "qualcuno"
> "qualcosa" ci mette questa A sormontata da simbolo ^ quando uso Linux Mint.
> [...]
> Ma chi è quell'alieno che ci aggiunge la A sormontata da ^ e in quale
> passaggio?
> Mi sembra più un problema da investigatore che da tecnico ;D
Secondo me i due ambienti usano nativamente due encoding diversi, e la
differenza è data da quello.
Il mondo civile¹, web e linux compresi, ha adottato da tempo utf-8 nel
quale ° è rappresentato dai byte ``c2 b0``. Windows a quanto ne so fa
cose ibride, usando internamente utf-16 nel quale ° è rappresentato dai
byte ``00 b0``.
I microcontrollori però non hanno spazio sufficiente per usare unicode,
quindi generalmente usano uno dei vecchi encoding ISO 8859-* in cui si
hanno a disposizione solo 256 caratteri.
Noto che in iso_8859-15(7) è presente il carattere ° ed è rappresentato
dal byte ``b0``, mentre ``c2`` codifica la “LATIN CAPITAL LETTER A WITH
CIRCUMFLEX”.
La cosa strana è che se windows passasse la stringa così come ce l'ha
lui interamente ``00 b0`` il byte ``00` dovrebbe essere preso da C come
terminatore di stringa e non stampare più nulla. Può darsi che ci sia
di mezzo una qualche conversione ad altro encoding.
Come già altri suggerivano, la cosa migliore è non scrivere °, ma
passare direttamente il byte ``b0``, in modo da essere sicuri del
risultato.
¹ ad eccezione di paesi coperti dai caratteri coinvolti dalla `Han
Unification`_ , per i quali effettivamente ci sono delle obiezioni
sensate, e qualche altro sistema di scrittura di nicchia non ancora
incluso in unicode.
.. _`Han Unification`: https://en.wikipedia.org/wiki/Han_unification
--
Elena ``of Valhalla''
_______________________________________________
Talking mailing list
Talking@ml.linuxvar.it
http://ml.linuxvar.it/cgi-bin/mailman/listinfo/talking