Newsgroup: it.comp.lang.delphi
Titolo: Problemi di visualizzazione di caratteri speciali con la console.

Ciao a tutti,
Qualche giorno fa avevo postato un msg in merito all'argomento in oggetto, 
ma forse non � arrivato al newsgroup oppure se mi avete risposto, non ho 
ricevuto alcun msg.
In breve, quando eseguo l'applicazione in modalit� console, ad esempio la 
stringa:
"Domani potr� piovere"
Viene visualizzata non correttamente, nel senso che la lettera accentata "�" 
di potr� viene sostituita con un altro carattere (apparentemente una alfa 
greca).
Il problema si presenta con tutte le lettere accentate, come posso risolvere 
questo problema facendo in modo di visualizzare correttamente la lettera?
Ho cercato su google e in particolare nel sito ufficiale di embarcadero ma 
non ho trovato nulla che potesse risolvermi il problema, ho provato ad 
esempio a scrivere:
Writeln (UTF8String ('�');
ma il problema permane.
Grazie in anticipo a chi mi aiuta a risolvere questo problemuccio; anche 
perch� sarebbe scomodo dover  rinunciare alle lettere accentate nelle parole 
o comunque trovare delle espressioni verbali analoghe che non abbiano parole 
con le lettere accentate.
 

 non ho trovato nulla che potesse risolvermi il problema
quali parole chiave hai usato? e cosa hai trovato?
A.

 ha scritto nel messaggio 
news:88af77ed-faaa-4886...@k19g2000yqc.googlegroups.com...

DELPHI CONSOLE SET CHARSET
i mi ha condotto in alcuni siti fra cui quello ufficiale in cui si faceva 
cenno a un ipotetico bug e dava una soluzione piuttosto complessa del 
problema insomma spiegava come risolverlo facendo il debug a livello di 
assembly o roba simile.
 

> DELPHI CONSOLE SET CHARSET
Spesso dimentichiamo che i ns programmi non funzionano grazie a magie
vodoo ma xche i pc hanno una cosa che si chiama sistema operativo.
A.


Io ho cercato una soluzione generale proprio per avere un margine di scelta 
pi� ampia, poi dalla soluzione data almeno cerco di capire meglio e trovare 
la soluzione specifica. Cmq nell'ambito dei risultati ho cercato anche 
quelli pertinenti a windows (non l'ho detto ma era scontato). 

 quelli pertinenti a windows (non l'ho detto ma era scontato).
e cosa hai trovato?
A.


L'ho gi� detto nel post precedente, informazioni che alla fine non mi 
tornavano utili in quanto anche avendo provato sperimentalmente seguendo le 
indicazioni riportate non ottenevo il risultato voluto. 

Questo l'ho trovato in 5 secondi:
http://illegalargumentexception.blogspot.com/2009/04/i18n-unicode-at-windows-command-prompt.html
A.


Letto l'articolo per� non mi aiuta (o se mi potrebbe aiutare, l'aiuto che 
potrei trovare li mi sfugge). Il mio obiettivo � fare in modo che le lettere 
accentate si visualizzino correttamente.
Ho controllato con chcp il codepage e risulta 850 come indicato; quindi il 
problema non � quello. Potrebbe essere il font usato nella console che non 
possiede le lettere accentate e le sostituisce con altre equivalenti al 
codice ascii associato a quel font... ma anche qui cambiando font il 
problema permane; ho provato anche su altri computer con sistemi operativi 
diversi e il problema permane;  questo mi lascia intendere che il problema 
non � del sistema operativo ma di una configurazione non buona di delphi; 
per cui giunto a questa conclusione ci� che mi interessava sapere appunto 
era quel comando da inserire nella mia applicazione console proprio per 
ovviare a questo problema.
Cooper. 

 "Domani potr� piovere"
La cambi con la frase
"Domani potra' piovere"
Credo tu non abbia problemi (tra le altre cose ..... questo modo di scrivere 
e' molto diffuso ed e' quello che io uso)
Uno dei problemi che potresti incontrare e' che "e' " occupa due byte 
anzich'e' 1 ... e negli sms conta tutto ....
Naturalmente non e' ne la soluzione definitiva ne quella piu' elegante e, 
forse, neanche quella che a te serve !!!
Buon anno,
   Daniele 
__________ Information from ESET NOD32 Antivirus, version of virus signature database 4743 (20100104) __________
The message was checked by ESET NOD32 Antivirus.
http://www.eset.com


IL problema non sono i byte; il problema � che nella lingua italiana 
l'apostrofo ha un significato ben preciso; l'accento un altra.
Nessuno mi vieta di scrivere:  la parola potr� (con l'accento sulla a) come: 
potra' (con l'apostrofo) o potra (senza apostrofo e senza accento) ma 
linguisticamente parlando � sbagliato.
L'italiano � importante... immagina un software con un italiano che fa 
pena... si darebbe l'impressione che questo software sia stato realizzato in 
un luogo sperduto dell'africa (senza nulla togliere agli africani) da uno 
che l'italiano non lo conosce nemmeno.... insomma un danno di immagine c'� 
sempre.
E' previbile a questo punto aggirare il problema scrivendo:
"Probabilmente domani piove"
Semanticamennte assume lo stesso significato senza ricorrere agli apostrofi 
e agli accenti; e quindi il problema non � dal punto di vista espressivo; 
quanto dal punto di vista tecnico.
Le lettere accentate devono essere riconosciute in modo corretto 
dall'applicazione che le usa e non devono essere configurate dall'esterno.
Per questo la necessit� di impostare il set dei caratteri corretto da dentro 
l'applicazione e non agendo dal di fuori.
 

 l'apostrofo ha un significato ben preciso; l'accento un altra.
Diciamo pure che in questo thread avete preso una piega non proprio
delphista :-)
Il problema è che Cooper ha aperto 2 thread identici in questo NG, e
la cosa non lo aiuta certo a trovare la risposta.
Gp :-P

 Letto l'articolo per� non mi aiuta[...]
Dubito molto che tu l'abbia letto. 
uses Windows;
var
  nocw: Cardinal;
  ws: WideString = 'Domani potr� piovere';
...
  WriteConsoleW(GetStdHandle(STD_OUTPUT_HANDLE), PWideChar(ws),
Length(ws), 
nocw, nil);
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 "Domani potra' piovere"
Ottieni una frase formalmente scorretta e svicoli dalla questione
iniziale, 
rimanendo nell'ignoranza su come si risolva il problema principale.
Per fortuna non siamo pi� ai tempi delle BBS e qualcosa, in termini di 
codifica dei caratteri, � stata portata avanti. La soluzione che proponi
non � 
una soluzione. Il problema dell'OP si risolve ricorrendo all'API giusta
del 
sistema operativo e, sopratutto, informandosi su cos'� Unicode e i vari 
sistemi di codifica.


 codifica dei caratteri, � stata portata avanti.
Esatto, per fortuna che non siamo piu' a quel tempo, tieni presente che 
questo problema e' stato proposto piu' di 20 anni fa e ancora se ne discute 
!!! e, forse, e' stato risolto con l'unicode.
Buona epifania a tutti ...
Ciao, Daniele
__________ Information from ESET NOD32 Antivirus, version of virus signature database 4745 (20100105) __________


 visualizzano caratteri strani.
Vedi sopra. Il problema dei "caratteri strani" esiste perch� sono troppi i
programmatori che non studiano, non si informano e non imparano ad usare
le tecnologie correttamente. Quei programmi sono, n� pi� n� meno, buggati.


 le tecnologie correttamente.
Qui molto probabilmente si entra in un altro discorso che riguarda le 
software house, scusami ma vado un po off topic ...
Non so come sia organizzato il mondo dei programmatori professionisti 
comunque, credo, anche in questo campo si deve stare aggiornati.
L'aggiornamento si ottiene andando alle conferenze e impegnando del tempo 
per studiare le novita'.
Ed e' questo il problema, le conferenze costano e in piu' perdi la 
produzione (senza considerare che non puoi obbligare nessuno a studiare nel 
proprio tempo libero) ........ questa e' la visione collettiva facendo finta 
ce non si tratti di un investimento aziendale. Ma il tutto e' ancora piu' 
complicato dalla scarsa fidelizzazione dell'impiegato medio italiano che 
appena ha finito un upgrade tecnico si propone sul mercato al miglior 
offerente. Quindi la piccola azienda (e' questo il mio caso) non manda il 
tecnico (me) ad aggiornarsi ai vari meeting e corsi di formazione (perche' 
teme che dopo aver speso x soldi per me io levo le tende per andare da un 
concorrente (non lo vieta nessuno)) e manda i suoi parenti stretti. Quindi 
per rimanere aggiornato io vado lo stesso ad alcuni corsi di formazione 
nelle mie ferie e a mie spese pero' non lo posso fare sempre. Il non 
aggironarsi porta al problema iniziale.
Bhe, cerdo di aver abusato fin troppo di questo spazio.....
Ci ritroviamo nel prossimo argomento ....
Che il nuovo anno lavorativo sia migliore di quello appena passato .... (con 
tutti i segni scaramantici possibili ed immaginabili)
Ciao, Daniele
__________ Information from ESET NOD32 Antivirus, version of virus signature database 4749 (20100106) __________


Daniele ha scritto:
<snip>
Ammetto che il termine "software house" mi fa un po' intenerire. Provo
nostalgia per quei tempi in cui, in Italia, queste aziende esistevano
veramente e non si erano ancora trasformate in ingranaggi tritasoldi di
quel macchinario infernale chiamato "body rental". Oggi si pasce
nell'"affitto dei corpi" (meglio dirlo in inglese, che fa pi� figo e
avvilisce meno) e coloro che si pregiano del titolo di "software house"
altro non sono che rivenditori di persone. Non gli frega niente n� di
farti crescere, n� di tenerti stretto. Hanno simpatiche signorine nel
recruitment che ti parlano di junior e senior senza sapere in realt� cosa
serva per esserlo e fanno soldi senza muovere un dito.
In ogni caso, il discorso � sempre lo stesso: per aggiornarsi, quello che
serve � passione, comprare libri, seguire blog, frequentare i luoghi in
cui si parla di certi argomenti e studiare, studiare, studiare. Il
problema grandissimo � il tempo disponibile. Le conferenze e i corsi di
formazione possono essere utili, ma secondo me lo studio personale � ci�
che serve davvero.
In quanto alla scarsa fidelizzazione, qui si tocca un tasto dolente. La
colpa non � dei dipendenti, � delle aziende. Io ho sentito molte volte i
dirigenti vantarsi di poter dire "tutti sono necessari, nessuno �
indispensabile". Cazzata madornale. S�, in un mondo in cui il software fa
cagare, come il panorama italiano, quella frase � indubbiamente vera e
condivisibile; se si vuol mantenere la qualit� del sw in giro su questi
livelli, allora ben venga l'asetticit� del posto di lavoro, l'affibiazione
fantozziana di un numero sul petto. Se solo, per�, si compiesse uno sforzo
intellettivo, si arriverebbe a capire una cosa molto semplice: un
programmatore esperto, competente, specializzato, non sostituibile con
facilit� � MOLTO MEGLIO di 10 pippe ricambiabili. La fidelizzazione si
costruisce, da parte dell'azienda, non � una vocazione che il
programmatore deve sentire nel cuore. Si � fidelizzati se si � rispettati
e motivati. Se mi offri 1200 euro a progetto non mi rispetti. Se mi fai
lavorare su dei progetti in cui preferisci stabilire una deadline
puramente commerciale e andare all'indietro, imponendomi i tempi di
sviluppo TUOI, anzich� chiedere a me uno studio di fattibilit� e una stima
di tempi e costi, non mi stai motivando. E cos� via (ti potrei citare un
miliardo di altri esempi). Le aziende dovrebbero, una volta e per tutte,
imparare a rispettare i dipendenti e a offrire loro un ambiente di lavoro
decente. In Italia, invece, sembra che le compagnie, dalle piccole alle
grandi, abbiano solo l'interesse a partecipare alle gare, intascare i
soldi e consegnare al cliente una "cartonata". Il software non va?
arriver� qualcuno a ripararlo o ricostruirlo. E cos� via, ci sar� ricambio
continuo e un mercato sempre in movimento. La qualit�? chissenefrega.
