Codifica in italiano per i file

di il
16 risposte

Codifica in italiano per i file

Ciao a tutti,

sto creando un programma in cui mi serve aprire i file con codifica in italiano. La routine è questa:

 Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
       Dim args = Environment.GetCommandLineArgs()
       'The first commandline argument is the path of the EXE.
       'If there is just one more argument and it's a file, read it as text and display it.
       'The first commandline argument is the path of the EXE.
       'If there is just one more argument and it's a file, read it as text and display it.
       If args.Length = 2 AndAlso File.Exists(args(1)) Then
           Using reader As StreamReader = New StreamReader(args(1), System.Text.Encoding.GetEncoding("Latin1"))
               Dim tit As String = openFileDialog.Title
               TextBox1.Text = reader.ReadToEnd()
               Me.Text = args(1)
           End Using
       End If
       TextBox1.SelectionStart = 0
   End Sub

   Ho provato tutte le codifiche. La migliore è Latin1, ma mi elimina tutti gli apostrofi.

   Chi mi aiuta a risolvere il problema?

   Grazie in anticipo

16 Risposte

  • Re: Codifica in italiano per i file

    Spiegati meglio

  • Re: Codifica in italiano per i file

    Ciao, grazie per l'intervento.

    Con il codice che ho postato quando clicco su un file mi compare il testo del file. Ma nel file non vedo più gli apostrofi a causa della codifica che ho impostato. Io vorrei vedere il testo del file così come è stato scritto originariamente. Non riesco a trovare la codifica giusta affinchè il testo si possa leggere senza cambiamenti rispetto a come è stato scritto. Le codifiche suggerite le ho provate tutte.

  • Re: Codifica in italiano per i file

    Se il tuo sistema è italiano, hai provato semplicemente con

    Using reader As StreamReader = New StreamReader(args(1))

    Comunque parliamo di accenti, non apostrofi

  • Re: Codifica in italiano per i file

    Ciao Oregon,
    seguendo il tuo consiglio ho scritto il seguente codice, ma mi compare un simbolo di punto interrogativo ad ogni accento od apostrofo

    Using reader As StreamReader = New StreamReader(args(1), True)
                   TextBox1.Text = reader.ReadToEnd()
               End Using
              
  • Re: Codifica in italiano per i file

    E cosa vedi se apri il file con Notepad?

  • Re: Codifica in italiano per i file

    Aggiungi prima della using la linea

    CultureInfo.CurrentCulture = New CultureInfo("it-IT", False)
  • Re: Codifica in italiano per i file

    Ciao,
    ho provato ad aggiungere prima della using quella linea di codice, ma non è cambiato niente

  • Re: Codifica in italiano per i file

    Allora il tuo file è malformato

    Faccelo scaricare

  • Re: Codifica in italiano per i file

    Dunque,
    ho creato un nuovo file e vi ho incollato il testo da file incriminato. Il nuovo file adesso lo apro e lo leggo senza problemi.

    Grazie, ma scusa, mi dici che significa che il vecchio file è malformato?

  • Re: Codifica in italiano per i file

    Ah, dimenticato alcune cose importante: grazie Oregon sei sempre molto bravo. 

    E poi, per fare il copia e incolla del contenuto ho usato Notepad2, che è un ottimo software a mio avviso, ma nella casella di ricerca ha i caratteri molto piccoli.

  • Re: Codifica in italiano per i file

    Ti consiglio di usare Notepad++

    Sul vecchio file non ti posso dire nulla di più preciso senza scaricarlo e vederlo

  • Re: Codifica in italiano per i file

    Un'altra prova da fare è usare:

    Using reader As StreamReader = New StreamReader(args(1), System.Text.Encoding.Default)
  • Re: Codifica in italiano per i file

    Non è detto che Default funzioni sempre su tutti i PC

  • Re: Codifica in italiano per i file

    10/07/2023 - oregon ha scritto:


    Non è detto che Default funzioni sempre su tutti i PC

    Già, hai ragione, allora si può provare con

    Using reader As StreamReader = New StreamReader(args(1), System.Text.Encoding.GetEncoding("Windows-1252"))
Devi accedere o registrarti per scrivere nel forum
16 risposte