ASCII Code "ordine sbagliato"

Hai una curiosità o un problema con Game Maker? Domanda e ti sarà risposto!
Avatar utente
Xxshark888xX
Membro d'elite
Messaggi: 1497
Iscritto il: 30/05/2012, 19:17
Specialità: Un poco di tutto
Uso: GM:Studio 1.4 Pro
Località: Earth
Contatta:

ASCII Code "ordine sbagliato"

Messaggio da Xxshark888xX »

Salve! Allora, ho scritto su un file di testo la lista di ASCII code (0-255) da GM.
La lista non e' nel classico ordine.

GM

Codice: Seleziona tutto

[0 ->  
[1 ->  
[2 ->  
[3 ->  
[4 ->  
[5 ->  
[6 ->  
[7 ->  
[8 ->  
[9 ->  	
[10 ->  

[11 ->  
[12 ->  
[13 ->  

[14 ->  
[15 ->  
[16 ->  
[17 ->  
[18 ->  
[19 ->  
[20 ->  
[21 ->  
[22 ->  
[23 ->  
[24 ->  
[25 ->  
[26 ->  
[27 ->  
[28 ->  
[29 ->  
[30 ->  
[31 ->  
[32 ->   
[33 ->  !
[34 ->  "
[35 ->  #
[36 ->  $
[37 ->  %
[38 ->  &
[39 ->  '
[40 ->  (
[41 ->  )
[42 ->  *
[43 ->  +
[44 ->  ,
[45 ->  -
[46 ->  .
[47 ->  /
[48 ->  0
[49 ->  1
[50 ->  2
[51 ->  3
[52 ->  4
[53 ->  5
[54 ->  6
[55 ->  7
[56 ->  8
[57 ->  9
[58 ->  :
[59 ->  ;
[60 ->  <
[61 ->  =
[62 ->  >
[63 ->  ?
[64 ->  @
[65 ->  A
[66 ->  B
[67 ->  C
[68 ->  D
[69 ->  E
[70 ->  F
[71 ->  G
[72 ->  H
[73 ->  I
[74 ->  J
[75 ->  K
[76 ->  L
[77 ->  M
[78 ->  N
[79 ->  O
[80 ->  P
[81 ->  Q
[82 ->  R
[83 ->  S
[84 ->  T
[85 ->  U
[86 ->  V
[87 ->  W
[88 ->  X
[89 ->  Y
[90 ->  Z
[91 ->  [
[92 ->  \
[93 ->  ]
[94 ->  ^
[95 ->  _
[96 ->  `
[97 ->  a
[98 ->  b
[99 ->  c
[100 ->  d
[101 ->  e
[102 ->  f
[103 ->  g
[104 ->  h
[105 ->  i
[106 ->  j
[107 ->  k
[108 ->  l
[109 ->  m
[110 ->  n
[111 ->  o
[112 ->  p
[113 ->  q
[114 ->  r
[115 ->  s
[116 ->  t
[117 ->  u
[118 ->  v
[119 ->  w
[120 ->  x
[121 ->  y
[122 ->  z
[123 ->  {
[124 ->  |
[125 ->  }
[126 ->  ~
[127 ->  
[128 ->  €
[129 ->  
[130 ->  ‚
[131 ->  ƒ
[132 ->  „
[133 ->  …
[134 ->  †
[135 ->  ‡
[136 ->  ˆ
[137 ->  ‰
[138 ->  Š
[139 ->  ‹
[140 ->  Œ
[141 ->  
[142 ->  Ž
[143 ->  
[144 ->  
[145 ->  ‘
[146 ->  ’
[147 ->  “
[148 ->  ”
[149 ->  •
[150 ->  –
[151 ->  —
[152 ->  ˜
[153 ->  ™
[154 ->  š
[155 ->  ›
[156 ->  œ
[157 ->  
[158 ->  ž
[159 ->  Ÿ
[160 ->   
[161 ->  ¡
[162 ->  ¢
[163 ->  £
[164 ->  ¤
[165 ->  ¥
[166 ->  ¦
[167 ->  §
[168 ->  ¨
[169 ->  ©
[170 ->  ª
[171 ->  «
[172 ->  ¬
[173 ->  ­
[174 ->  ®
[175 ->  ¯
[176 ->  °
[177 ->  ±
[178 ->  ²
[179 ->  ³
[180 ->  ´
[181 ->  µ
[182 ->  ¶
[183 ->  ·
[184 ->  ¸
[185 ->  ¹
[186 ->  º
[187 ->  »
[188 ->  ¼
[189 ->  ½
[190 ->  ¾
[191 ->  ¿
[192 ->  À
[193 ->  Á
[194 ->  Â
[195 ->  Ã
[196 ->  Ä
[197 ->  Å
[198 ->  Æ
[199 ->  Ç
[200 ->  È
[201 ->  É
[202 ->  Ê
[203 ->  Ë
[204 ->  Ì
[205 ->  Í
[206 ->  Î
[207 ->  Ï
[208 ->  Ð
[209 ->  Ñ
[210 ->  Ò
[211 ->  Ó
[212 ->  Ô
[213 ->  Õ
[214 ->  Ö
[215 ->  ×
[216 ->  Ø
[217 ->  Ù
[218 ->  Ú
[219 ->  Û
[220 ->  Ü
[221 ->  Ý
[222 ->  Þ
[223 ->  ß
[224 ->  à
[225 ->  á
[226 ->  â
[227 ->  ã
[228 ->  ä
[229 ->  å
[230 ->  æ
[231 ->  ç
[232 ->  è
[233 ->  é
[234 ->  ê
[235 ->  ë
[236 ->  ì
[237 ->  í
[238 ->  î
[239 ->  ï
[240 ->  ð
[241 ->  ñ
[242 ->  ò
[243 ->  ó
[244 ->  ô
[245 ->  õ
[246 ->  ö
[247 ->  ÷
[248 ->  ø
[249 ->  ù
[250 ->  ú
[251 ->  û
[252 ->  ü
[253 ->  ý
[254 ->  þ
[255 ->  ÿ
Invece su questo sito e' cosi'. Inoltre il mio problema principale e' che se ad esempio devo utilizzare il carattere 148 GM me lo "mostra invisibile" anziche' ö. (Nella lista ASCII esportata da GM questo carattere risulta avere ASCII code 246..)
Sapete da cosa dipende?
Contatti
Steam
Facebook

Gif
Spoiler
Immagine
Immagine
Immagine
Immagine

Jak
Admin
Messaggi: 12355
Iscritto il: 19/08/2009, 16:20
Specialità: Programmazione 3D
Uso: GM:Studio 2
Contatta:

Re: ASCII Code "ordine sbagliato"

Messaggio da Jak »

"Mostra invisibile" in che senso?
Il font predefinito di GM non include tutti i caratteri, crea un nuovo font e mettigli 0-255.
Time to feel, time to believe
Dare to see what may come of our future
Lift your head, broaden your gaze
Speak your mind and your thoughts they will follow you

Avatar utente
Xxshark888xX
Membro d'elite
Messaggi: 1497
Iscritto il: 30/05/2012, 19:17
Specialità: Un poco di tutto
Uso: GM:Studio 1.4 Pro
Località: Earth
Contatta:

Re: ASCII Code "ordine sbagliato"

Messaggio da Xxshark888xX »

Jak ha scritto:"Mostra invisibile" in che senso?
Il font predefinito di GM non include tutti i caratteri, crea un nuovo font e mettigli 0-255.
Non utilizzavo draw_text ma show_message o get_string. Comunque anche in un'applicazione creata in C# mi da lo stesso problema. Il carattere c'e', ma e' invisibile.

I caratteri che danno problemi sono quelli a paritre da 128 fino a 159.
Contatti
Steam
Facebook

Gif
Spoiler
Immagine
Immagine
Immagine
Immagine

Barnack
Membro attivo
Messaggi: 341
Iscritto il: 03/09/2013, 13:26
Specialità: Programmazione
Uso: GM:Studio 1.4 Pro
Contatta:

Re: ASCII Code "ordine sbagliato"

Messaggio da Barnack »

Non è un problema del linguaggio, a dire il vero non è affatto un "problema".
Molti caratteri c >=128 non rientrano nell'"ascii standard", e in teoria sarebbero diversi a seconda delle lingue (God save the Microsoft quando hanno proposto di usare l'unicode come standard universale).
Il punto è che nel tuo computer manca l'informazione "a quel codice corrisponde questo simbolo". Provalo su un altro computer e vedi se da gli stessi problemi.
Se su gm crei un font e lo imposti ad ascii completo, nella pagina del font ti visualizza tutti i caratteri correttamente o ci sono anche caratteri saltati o quadrati?

Utilizzo
GM: Studio Pro
C++ terminale
Batch
Jaschif

Spoiler
C++ WinApi / DirectX
C#



Avatar utente
Xxshark888xX
Membro d'elite
Messaggi: 1497
Iscritto il: 30/05/2012, 19:17
Specialità: Un poco di tutto
Uso: GM:Studio 1.4 Pro
Località: Earth
Contatta:

Re: ASCII Code "ordine sbagliato"

Messaggio da Xxshark888xX »

Barnack ha scritto:Non è un problema del linguaggio, a dire il vero non è affatto un "problema".
Molti caratteri c >=128 non rientrano nell'"ascii standard", e in teoria sarebbero diversi a seconda delle lingue (God save the Microsoft quando hanno proposto di usare l'unicode come standard universale).
Il punto è che nel tuo computer manca l'informazione "a quel codice corrisponde questo simbolo". Provalo su un altro computer e vedi se da gli stessi problemi.
Se su gm crei un font e lo imposti ad ascii completo, nella pagina del font ti visualizza tutti i caratteri correttamente o ci sono anche caratteri saltati o quadrati?
Stessa cosa, i caratteri compresi in quel range non si vedono proprio.
Contatti
Steam
Facebook

Gif
Spoiler
Immagine
Immagine
Immagine
Immagine

Barnack
Membro attivo
Messaggi: 341
Iscritto il: 03/09/2013, 13:26
Specialità: Programmazione
Uso: GM:Studio 1.4 Pro
Contatta:

Re: ASCII Code "ordine sbagliato"

Messaggio da Barnack »

intendi nell'ide? Su blocco note li vedi?

Utilizzo
GM: Studio Pro
C++ terminale
Batch
Jaschif

Spoiler
C++ WinApi / DirectX
C#



Avatar utente
Xxshark888xX
Membro d'elite
Messaggi: 1497
Iscritto il: 30/05/2012, 19:17
Specialità: Un poco di tutto
Uso: GM:Studio 1.4 Pro
Località: Earth
Contatta:

Re: ASCII Code "ordine sbagliato"

Messaggio da Xxshark888xX »

Barnack ha scritto:intendi nell'ide? Su blocco note li vedi?
Si'. Comunque ho capito il "problema" ASCII e UNICODE sono diversi, sopratutto perche' per ottenere molti caratteri dalla lista UNICODE bisogna convertirli da esadecimale a decimale
Contatti
Steam
Facebook

Gif
Spoiler
Immagine
Immagine
Immagine
Immagine

Barnack
Membro attivo
Messaggi: 341
Iscritto il: 03/09/2013, 13:26
Specialità: Programmazione
Uso: GM:Studio 1.4 Pro
Contatta:

Re: ASCII Code "ordine sbagliato"

Messaggio da Barnack »

che ascii e unicode fossero diversi credevo fosse ovvio, altrimenti avrebbero lo stesso nome xD
Cosa intendi con "convertirli da esadecimale a decimale"? Tutte le codifiche possono essere espresse con qualsiasi base numerica. Sono pur sempre numeri

https://unicode-table.com/en/
per ogni carattere ti da la codifica
https://unicode-table.com/en/02E5/ nella tabella "encoding"

Utilizzo
GM: Studio Pro
C++ terminale
Batch
Jaschif

Spoiler
C++ WinApi / DirectX
C#



Avatar utente
Xxshark888xX
Membro d'elite
Messaggi: 1497
Iscritto il: 30/05/2012, 19:17
Specialità: Un poco di tutto
Uso: GM:Studio 1.4 Pro
Località: Earth
Contatta:

Re: ASCII Code "ordine sbagliato"

Messaggio da Xxshark888xX »

Barnack ha scritto:che ascii e unicode fossero diversi credevo fosse ovvio, altrimenti avrebbero lo stesso nome xD
Cosa intendi con "convertirli da esadecimale a decimale"? Tutte le codifiche possono essere espresse con qualsiasi base numerica. Sono pur sempre numeri

https://unicode-table.com/en/
per ogni carattere ti da la codifica
https://unicode-table.com/en/02E5/ nella tabella "encoding"
Che se io cercavo di mettere (ad esempio) 203 in UNICODE (che risulta quel carattere che hai postato tu) in ASCII usciva Ë invece di ˥
Semplicemente cio'.

Pero', guarda questa tabella, i caratteri da 128 a 159 ci sono, invece per questa tabella no. Sinceramente non ci sto capendo granche', ma la "soluzione" e' utilizzare UNICODE.

Il carattere "BAT" ritorna come valore "55358" (in GM) pero' se convertiamo questo valore in chr ci uscira' "�" che a sua volta ha come valore "65533". Per questo dico che non ci capisco piu' nulla...
Contatti
Steam
Facebook

Gif
Spoiler
Immagine
Immagine
Immagine
Immagine

Barnack
Membro attivo
Messaggi: 341
Iscritto il: 03/09/2013, 13:26
Specialità: Programmazione
Uso: GM:Studio 1.4 Pro
Contatta:

Re: ASCII Code "ordine sbagliato"

Messaggio da Barnack »

Xxshark888xX ha scritto:
Barnack ha scritto:che ascii e unicode fossero diversi credevo fosse ovvio, altrimenti avrebbero lo stesso nome xD
Cosa intendi con "convertirli da esadecimale a decimale"? Tutte le codifiche possono essere espresse con qualsiasi base numerica. Sono pur sempre numeri

https://unicode-table.com/en/
per ogni carattere ti da la codifica
https://unicode-table.com/en/02E5/ nella tabella "encoding"
Che se io cercavo di mettere (ad esempio) 203 in UNICODE (che risulta quel carattere che hai postato tu) in ASCII usciva Ë invece di ˥
Semplicemente cio'.
Ripeto: è ovvio che non coincidano, se coincidessero non sarebbero due codifiche diverse no?
un esempio più semplice:
ho la codifica Tizio che funziona come segue: ad ogni numero corrisponde l'i-esima lettera dell'alfabeto latino, e ad ogni 100+i la maiuscola
(quindi 0=a, 1=b, 2=c, ..., 100=A, 101=B, ...)
la codifica Caio invece usa le decine come indice della lettera e l'unità per dire se è maiuscola o minuscola
(quindi 00=a, 01=A, 10=b, 11=B, 20=c, 21=C, 30=d, 31=D, ...)
Ora, se prendi il carattere 11 in codifica Tizio avrai una bella "L", mentre lo stesso numero in Caio è la lettera "B". Perché mai dovrebbe essere diversamente? Se allo stesso numero corrispondesse lo stesso carattere che differenza ci sarebbe tra Tizio e Caio? Nessuna.
Xxshark888xX ha scritto:Pero', guarda questa tabella, i caratteri da 128 a 159 ci sono, invece per questa tabella no.
L'ascii è una codifica "semplicistica" che ha il minimo indispensabile. In teoria l'ascii termina al carattere 128. Poi però si sono accorti che avevano bisogno delle lettere accentate, umlaut, simboli strani etcc etcc. Ma essendo l'ascii al massimo una composizione di 8 bit ovviamente non ci sta tutto (il massimo è 256, quindi 256 caratteri disponibili). Quindi ci sono diverse codifiche ascii non standard, che hanno caratteri diversi tra loro quando si va oltre il 128. Il 150 dell'ascii esteso italiano potrebbe essere (quasi sicuramente è) diverso dal 150 dell'ascii esteso francese per esempio.
Xxshark888xX ha scritto:Sinceramente non ci sto capendo granche', ma la "soluzione" e' utilizzare UNICODE.
Il carattere "BAT" ritorna come valore "55358" (in GM) pero' se convertiamo questo valore in chr ci uscira' "�" che a sua volta ha come valore "65533". Per questo dico che non ci capisco piu' nulla...
Game maker, come dice nella stessa pagina che hai riportato tu, utilizza l'ascii. Quindi ovviamente non usa l'unicode giusto?
Ora, quando tu gli dai un carattere lui legge un numero. Se gli dai un carattere unicode che corrisponde al numero 50, gamemaker ti farà vedere il 50esimo carattere in ascii, semplicemente perché così è fatto.
L'informazione che tu gli dai è un numero, e lui sa che i numeri deve leggerli secondo la tabella ascii. Ora, finché usi caratteri il cui codice è compreso tra 0 e 128, in ascii esiste un carattere con quel codice, e ti farà vedere quel carattere. Se usi un carattere tra 129 e 256 ogni software può dare risultati diversi perché non esiste uno standard ed ognuno fa come cavolo gli pare.
Se usi un carattere tipo il pipistrello il cui codice è 55358, beh... È come se io ti dicessi nella codifica caio di darmi il carattere 50000. Semplicemente non è prevista la sua esistenza, quel numero non corrisponde a nulla. Viene usato il simbolo � non perché gm abbia detto "aspetta questo forse è unicode, quindi blabla". I computer non sanno cosa pensi, sanno solo che ad un numero corrisponde una lettera. Quando quel numero non è valido per convenzione viene mostrato il simbolo � o più comunemente il simbolo ▯. È il suo modo di dirti "non esiste"

Utilizzo
GM: Studio Pro
C++ terminale
Batch
Jaschif

Spoiler
C++ WinApi / DirectX
C#



Avatar utente
Xxshark888xX
Membro d'elite
Messaggi: 1497
Iscritto il: 30/05/2012, 19:17
Specialità: Un poco di tutto
Uso: GM:Studio 1.4 Pro
Località: Earth
Contatta:

Re: ASCII Code "ordine sbagliato"

Messaggio da Xxshark888xX »

Spoiler
Barnack ha scritto:
Xxshark888xX ha scritto:
Barnack ha scritto:che ascii e unicode fossero diversi credevo fosse ovvio, altrimenti avrebbero lo stesso nome xD
Cosa intendi con "convertirli da esadecimale a decimale"? Tutte le codifiche possono essere espresse con qualsiasi base numerica. Sono pur sempre numeri

https://unicode-table.com/en/
per ogni carattere ti da la codifica
https://unicode-table.com/en/02E5/ nella tabella "encoding"
Che se io cercavo di mettere (ad esempio) 203 in UNICODE (che risulta quel carattere che hai postato tu) in ASCII usciva Ë invece di ˥
Semplicemente cio'.
Ripeto: è ovvio che non coincidano, se coincidessero non sarebbero due codifiche diverse no?
un esempio più semplice:
ho la codifica Tizio che funziona come segue: ad ogni numero corrisponde l'i-esima lettera dell'alfabeto latino, e ad ogni 100+i la maiuscola
(quindi 0=a, 1=b, 2=c, ..., 100=A, 101=B, ...)
la codifica Caio invece usa le decine come indice della lettera e l'unità per dire se è maiuscola o minuscola
(quindi 00=a, 01=A, 10=b, 11=B, 20=c, 21=C, 30=d, 31=D, ...)
Ora, se prendi il carattere 11 in codifica Tizio avrai una bella "L", mentre lo stesso numero in Caio è la lettera "B". Perché mai dovrebbe essere diversamente? Se allo stesso numero corrispondesse lo stesso carattere che differenza ci sarebbe tra Tizio e Caio? Nessuna.
Xxshark888xX ha scritto:Pero', guarda questa tabella, i caratteri da 128 a 159 ci sono, invece per questa tabella no.
L'ascii è una codifica "semplicistica" che ha il minimo indispensabile. In teoria l'ascii termina al carattere 128. Poi però si sono accorti che avevano bisogno delle lettere accentate, umlaut, simboli strani etcc etcc. Ma essendo l'ascii al massimo una composizione di 8 bit ovviamente non ci sta tutto (il massimo è 256, quindi 256 caratteri disponibili). Quindi ci sono diverse codifiche ascii non standard, che hanno caratteri diversi tra loro quando si va oltre il 128. Il 150 dell'ascii esteso italiano potrebbe essere (quasi sicuramente è) diverso dal 150 dell'ascii esteso francese per esempio.
Xxshark888xX ha scritto:Sinceramente non ci sto capendo granche', ma la "soluzione" e' utilizzare UNICODE.
Il carattere "BAT" ritorna come valore "55358" (in GM) pero' se convertiamo questo valore in chr ci uscira' "�" che a sua volta ha come valore "65533". Per questo dico che non ci capisco piu' nulla...
Game maker, come dice nella stessa pagina che hai riportato tu, utilizza l'ascii. Quindi ovviamente non usa l'unicode giusto?
Ora, quando tu gli dai un carattere lui legge un numero. Se gli dai un carattere unicode che corrisponde al numero 50, gamemaker ti farà vedere il 50esimo carattere in ascii, semplicemente perché così è fatto.
L'informazione che tu gli dai è un numero, e lui sa che i numeri deve leggerli secondo la tabella ascii. Ora, finché usi caratteri il cui codice è compreso tra 0 e 128, in ascii esiste un carattere con quel codice, e ti farà vedere quel carattere. Se usi un carattere tra 129 e 256 ogni software può dare risultati diversi perché non esiste uno standard ed ognuno fa come cavolo gli pare.
Se usi un carattere tipo il pipistrello il cui codice è 55358, beh... È come se io ti dicessi nella codifica caio di darmi il carattere 50000. Semplicemente non è prevista la sua esistenza, quel numero non corrisponde a nulla. Viene usato il simbolo � non perché gm abbia detto "aspetta questo forse è unicode, quindi blabla". I computer non sanno cosa pensi, sanno solo che ad un numero corrisponde una lettera. Quando quel numero non è valido per convenzione viene mostrato il simbolo � o più comunemente il simbolo ▯. È il suo modo di dirti "non esiste"
Hmm, ora mi e' tutto molto piu' chiaro!

Quindi, alla fine come si potrebbe utilizzare UNICODE in GM? (Dato che come hai detto tu, l'ASCII non supera i 128 (standard))

P.S: Qui c'e' scritto che ord() ritorna il valore UNICODE e non ASCII. Allora perche' quando sul pippistrello metto ord(carattere del pippistrello) mi ritorna il valore 55358 invece del suo vero valore UNICODE che sarebbe 129415? (Mi sto basando sui valori del sito da te riportato per la tabella UNICODE)

Comunque grazie della spiegazione! :D
Contatti
Steam
Facebook

Gif
Spoiler
Immagine
Immagine
Immagine
Immagine

Barnack
Membro attivo
Messaggi: 341
Iscritto il: 03/09/2013, 13:26
Specialità: Programmazione
Uso: GM:Studio 1.4 Pro
Contatta:

Re: ASCII Code "ordine sbagliato"

Messaggio da Barnack »

perché hanno fatto tante porcate riguardo alla codifica da utilizzare. Per default prendi l'ascii.
Per convertire un codice nel suo carattere unicode dovresti usare chr(codice) MA ciò non cambierà il fatto che i fonts nel gioco sono in ascii. Potrebbe funzionare nello show message se dipendesse dalle windows api, ma non ne sono sicuro. Di certo non funzionerà con draw_text, perché quello segue il font di gm che è in ascii.

Utilizzo
GM: Studio Pro
C++ terminale
Batch
Jaschif

Spoiler
C++ WinApi / DirectX
C#



Avatar utente
Xxshark888xX
Membro d'elite
Messaggi: 1497
Iscritto il: 30/05/2012, 19:17
Specialità: Un poco di tutto
Uso: GM:Studio 1.4 Pro
Località: Earth
Contatta:

Re: ASCII Code "ordine sbagliato"

Messaggio da Xxshark888xX »

Barnack ha scritto:perché hanno fatto tante porcate riguardo alla codifica da utilizzare. Per default prendi l'ascii.
Per convertire un codice nel suo carattere unicode dovresti usare chr(codice) MA ciò non cambierà il fatto che i fonts nel gioco sono in ascii. Potrebbe funzionare nello show message se dipendesse dalle windows api, ma non ne sono sicuro. Di certo non funzionerà con draw_text, perché quello segue il font di gm che è in ascii.
Ok, ora mi e' tutto piu' chiaro. Grazie!
Contatti
Steam
Facebook

Gif
Spoiler
Immagine
Immagine
Immagine
Immagine

Avatar utente
BaronVsCorsar
GMI VIP
Messaggi: 4699
Iscritto il: 14/02/2004, 12:05
Specialità: Saccenza
Uso: GameMaker 8.1
Località: Ferrara
Contatta:

Re: ASCII Code "ordine sbagliato"

Messaggio da BaronVsCorsar »

GM era passata ad unicode credo nella versione 7, ed avevano fatto una porcata tale, che non si riusciva più a gestire una cippa. C'erano svariati bug aperti (uno l'avevo segnalato io), che non venivano mai davvero risolti. Al primo upgrade risolsero... togliendo l'unicode.
Per poi rimetterlo più avanti, ma sempre con molta confusione a parere mio (ma sono fermo a GM 8.1).

Qualche dritta:
- unicode ha più codifiche, quella più utilizzata nel mondo occidentale è la UTF-8
- i primi 128 caratteri di unicode UTF-8 combaciano con la codifica ASCII (caratteristica non trascurabile)
- Microsoft NON ha inventato Unicode, che è un consorzio. Microsoft propose (prima che esistesse unicode) una sua codifica, che fu praticamente "incorporata" in unicode (per lo meno in una delle sue codifiche)
- l'ascii esteso (i secondi 128 caratteri) possono avere delle page code diverse (cioè caratteri diversi). Alcuni page code sono piuttosto "universali", ma non ci puoi mai fare affidamento. Una regola prima del 1995 era di usare sempre solo i primi 128 caratteri se volevi avere una portabilità al 100%. https://it.wikipedia.org/wiki/ISO_8859

Potrei avere detto delle imprecisioni... (disclaimer).

Comqune: usare ASCII -> facile
usare unicode -> casino allucinante.

confronta:
https://it.wikipedia.org/wiki/ASCII
https://it.wikipedia.org/wiki/Unicode

Ovvio che dove si ha una necessità limitata di uso dei caratteri (tipo un videogioco) bisogna valutare attentamente se si ha DAVVERO necessità di usare unicode.
Spesso è più che sufficiente usare ASCII.

Poi se si vogliono leggere dei file di testo (txt) il discorso è diverso... se arrivano file unicode si devono leggere così.
ImmagineSchiva questo - http:\\baronvscorsar.altervista.org
by Lego: Vado in un bar e faccio "votiamo che quel tizio la in fondo venga buttato fuori", ma perché?

Avatar utente
Xxshark888xX
Membro d'elite
Messaggi: 1497
Iscritto il: 30/05/2012, 19:17
Specialità: Un poco di tutto
Uso: GM:Studio 1.4 Pro
Località: Earth
Contatta:

Re: ASCII Code "ordine sbagliato"

Messaggio da Xxshark888xX »

Spoiler
BaronVsCorsar ha scritto:GM era passata ad unicode credo nella versione 7, ed avevano fatto una porcata tale, che non si riusciva più a gestire una cippa. C'erano svariati bug aperti (uno l'avevo segnalato io), che non venivano mai davvero risolti. Al primo upgrade risolsero... togliendo l'unicode.
Per poi rimetterlo più avanti, ma sempre con molta confusione a parere mio (ma sono fermo a GM 8.1).

Qualche dritta:
- unicode ha più codifiche, quella più utilizzata nel mondo occidentale è la UTF-8
- i primi 128 caratteri di unicode UTF-8 combaciano con la codifica ASCII (caratteristica non trascurabile)
- Microsoft NON ha inventato Unicode, che è un consorzio. Microsoft propose (prima che esistesse unicode) una sua codifica, che fu praticamente "incorporata" in unicode (per lo meno in una delle sue codifiche)
- l'ascii esteso (i secondi 128 caratteri) possono avere delle page code diverse (cioè caratteri diversi). Alcuni page code sono piuttosto "universali", ma non ci puoi mai fare affidamento. Una regola prima del 1995 era di usare sempre solo i primi 128 caratteri se volevi avere una portabilità al 100%. https://it.wikipedia.org/wiki/ISO_8859

Potrei avere detto delle imprecisioni... (disclaimer).

Comqune: usare ASCII -> facile
usare unicode -> casino allucinante.

confronta:
https://it.wikipedia.org/wiki/ASCII
https://it.wikipedia.org/wiki/Unicode

Ovvio che dove si ha una necessità limitata di uso dei caratteri (tipo un videogioco) bisogna valutare attentamente se si ha DAVVERO necessità di usare unicode.
Spesso è più che sufficiente usare ASCII.

Poi se si vogliono leggere dei file di testo (txt) il discorso è diverso... se arrivano file unicode si devono leggere così.
Grazie anche della tua risposta. Ma in questi giorni ho approfondito molto l'argomento ed ho capito molto riguardo ad ASCII, UNICODE e le varie codifiche.
Contatti
Steam
Facebook

Gif
Spoiler
Immagine
Immagine
Immagine
Immagine

Barnack
Membro attivo
Messaggi: 341
Iscritto il: 03/09/2013, 13:26
Specialità: Programmazione
Uso: GM:Studio 1.4 Pro
Contatta:

Re: ASCII Code "ordine sbagliato"

Messaggio da Barnack »

BaronVsCorsar ha scritto:- Microsoft NON ha inventato Unicode, che è un consorzio. Microsoft propose (prima che esistesse unicode) una sua codifica, che fu praticamente "incorporata" in unicode (per lo meno in una delle sue codifiche)
la Microsoft ha proposto-incoraggiato il passaggio all'utf-16 bit come standard globale. Peccato che si sia fermato tutto alle proposte.

Utilizzo
GM: Studio Pro
C++ terminale
Batch
Jaschif

Spoiler
C++ WinApi / DirectX
C#



Avatar utente
BaronVsCorsar
GMI VIP
Messaggi: 4699
Iscritto il: 14/02/2004, 12:05
Specialità: Saccenza
Uso: GameMaker 8.1
Località: Ferrara
Contatta:

Re: ASCII Code "ordine sbagliato"

Messaggio da BaronVsCorsar »

utf-16 è uno standard, non si è fermato nulla.
Si usa "poco" perchè in una lingua occidentale ad alfabeto latino "mediamente" occupa più spazio a parità di testo rispetto l'utf-8.
Potrebbe risultare più interessante magari per un file di testo con caratteri giapponesi o cose del genere.
Tieni presente che in un file di testo (italiano) è plausibile pensare che più del 90% dei caratteri siano nell'ascii... quindi con utf-8 occupano un byte. con utf-16 occuperebbero comunque ALMENO 2 byte.
Stesso discorso vale per la maggior parte di lingue ad alfabeto latino, in particolare l'inglese (per cui l'ascii era stato invenato), ecco perchè UTF-8 lo trovi ovunque utf-16 quasi da nessuna parte.

Forse in giappone è più diffuso dove (MEDIAMENTE) consente un risparmio di byte...
ImmagineSchiva questo - http:\\baronvscorsar.altervista.org
by Lego: Vado in un bar e faccio "votiamo che quel tizio la in fondo venga buttato fuori", ma perché?

Avatar utente
Xxshark888xX
Membro d'elite
Messaggi: 1497
Iscritto il: 30/05/2012, 19:17
Specialità: Un poco di tutto
Uso: GM:Studio 1.4 Pro
Località: Earth
Contatta:

Re: ASCII Code "ordine sbagliato"

Messaggio da Xxshark888xX »

BaronVsCorsar ha scritto:utf-16 è uno standard, non si è fermato nulla.
Si usa "poco" perchè in una lingua occidentale ad alfabeto latino "mediamente" occupa più spazio a parità di testo rispetto l'utf-8.
Potrebbe risultare più interessante magari per un file di testo con caratteri giapponesi o cose del genere.
Tieni presente che in un file di testo (italiano) è plausibile pensare che più del 90% dei caratteri siano nell'ascii... quindi con utf-8 occupano un byte. con utf-16 occuperebbero comunque ALMENO 2 byte.
Stesso discorso vale per la maggior parte di lingue ad alfabeto latino, in particolare l'inglese (per cui l'ascii era stato invenato), ecco perchè UTF-8 lo trovi ovunque utf-16 quasi da nessuna parte.

Forse in giappone è più diffuso dove (MEDIAMENTE) consente un risparmio di byte...
Esatto. Ma se non sbaglio c'e' anche UTF-32, no?
Contatti
Steam
Facebook

Gif
Spoiler
Immagine
Immagine
Immagine
Immagine

Barnack
Membro attivo
Messaggi: 341
Iscritto il: 03/09/2013, 13:26
Specialità: Programmazione
Uso: GM:Studio 1.4 Pro
Contatta:

Re: ASCII Code "ordine sbagliato"

Messaggio da Barnack »

l'utf8 non contiene tutti i caratteri mentre l'utf16 ha tutti quelli necessari, più gli extra ed ha ancora spazi vuoti. Non so perché abbiano pensato all'utf32 sinceramente. spreco di memoria ingiustificato

Utilizzo
GM: Studio Pro
C++ terminale
Batch
Jaschif

Spoiler
C++ WinApi / DirectX
C#



Avatar utente
BaronVsCorsar
GMI VIP
Messaggi: 4699
Iscritto il: 14/02/2004, 12:05
Specialità: Saccenza
Uso: GameMaker 8.1
Località: Ferrara
Contatta:

Re: ASCII Code "ordine sbagliato"

Messaggio da BaronVsCorsar »

utf-8, utf-16 e utf-32 "contengono" esattamente gli stessi caratteri, sono codifiche diverse della stessa cosa.

Semplicemente le regole per determinare quale carattere si vuole indicare sono diverse:
con utf-8:
l'entità minima è lunga un byte: se il byte ha il bit più significativo a 0, i restanti 7 byte codificano gli stessi caratteri dell'asci non esteso (cioè i primi 127 caratteri). Se il primo byte è 1 allora per sapere quale carattere si intende bisogna guardare il byte successivo (ma la cosa è complicata, perchè ci sono ancora regole che potrebbero allungare la catena).
con utf-16:
l'entità minima è lunga due byte: anche in questo caso ci sono sequenze che rimandano ad ulteriori byte per codificare altri caratteri.
utf-32: l'entità minima è lunga 4 byte, come sopra.

Che vantaggio ho a usare utf-16? Semplice, ci sono dei caratteri che con utf-8 si esprimono con 6 byte. Supponiamo di dover scrivere in una linguna che usa SOLO questi caratteri.
Se il testo è 100 caratteri l'occupazione è 400 byte.
Passiamo a utf-16... sorpresa: questi caratteri sono ancora codificati usando due "entità minime", quindi 4 byte. Ottimo, quanto occupo?
100 * 2 = 200.

Ora supponiamo di scrivere una tesi sull'egiziano antico e come tradurlo in klingon, utilizzando però alcuni modi di dire guerre stellari, ovviamente usando l'alfabeto Aurebesh.
Questi simboli (ammesso che siano codificati davvero dall'unicode...) verosimilmente occupano delle "pagine" di uso poco frequente, quindi sono finiti in quelle categorie che con utf-8 richiedono tanti byte (boh, esempio a caso: 10), così come in utf-16 (8 byte)... mentre con utf-32 sono finiti ancora nella categoria "una singola entità minima", quindi 4 caratteri.
Ora, se la tesi è lunga 1 milione di caratteri:
occuperà 10 milioni di byte in utf-8
8 milioni di byte in utf-16
e 4 milioni di byte in utf-32.

Ovviamente più è lunga l'entità minima (utf-32) più caratteri posso rappresentare usando una singola entità minima. Ma se con l'entità minima più corta (1 byte, quindi utf-8) copro il 99.995% dei caratteri che uso nel mio lavoro... bhe, perchè scomodare utf-32?

Come sopra: utf-16 è meno diffuso di utf-8 perchè in genere è più efficiente.
Utf-32 stesso motivo, a meno di lavorare con caratteri strani (per noi occidentali intendo) non ha nessun senso.
Se contattiamo studenti di lingue orientali (tailandese? coreano?) o ancora più esotiche, è plausibile che siano finite in "pagine" unicode che con utf-8 necessitano di parecchi byte per simbolo. In tal caso tanto vale codificarli con una più adeguata utf-32.
Succede spesso? Non per come uso io (e tanti altri) il computer.
Ha senso che esista: certo! C'è chi ne trae vantaggio? Eccome!
ImmagineSchiva questo - http:\\baronvscorsar.altervista.org
by Lego: Vado in un bar e faccio "votiamo che quel tizio la in fondo venga buttato fuori", ma perché?

Rispondi

Chi c’è in linea

Visitano il forum: Nessuno e 42 ospiti