Jump to content

[Resolvido] Formatar codificação de caracteres


sardin3s
 Share

Recommended Posts

Preciso de uma ajuda.

Tenho um ficheiro .csv exportado do Excel com formatação UTF-8.

Acontece que eu ao abrir esse ficheiro noutro programa, criado por mim em vb.net, a codificação fica estranha nos assentos e outros caracteres.

Depois de uma pesquisa intensa e de ter lido muito acerca de codificação de caracteres, entendi que não basta o ficheiro estar em UTF-8 por exemplo, mas sim converter todos os dados contidos nesse mesmo ficheiro.

Pesquisei acerca de maneiras para converter codificação de ficheiros, mas até agora ainda não consegui nada a não ser converter a base do ficheiro, ou seja, fica em UTF-8, mas os caracteres ficam mal na mesma.

É engraçado que se eu abrir o Notepad do Windows e Gravar em UTF-8 o ficheiro fica a funcionar na perfeição.

Alguém me consegue ajudar?

😕

Link to comment
Share on other sites

Como é que estás a gerar e a abrir o ficheiro?

O ficheiro é exportado do Excel, ou seja é um livro do Excel exportado para CSV com codificação em UTF-8 (já confirmei nas opções web do Excel).

Para abrir o ficheiro estou a utilizar o seguinte código:

If File.Exists(nomeArquivo) = True Then

				Dim objReader As New StreamReader(nomeArquivo)

				Do While objReader.Peek() <> -1

					linhaTexto = objReader.ReadLine()

					arrrayDeLinhas = Split(linhaTexto, Delimitador)

					row = dt.NewRow
					row.ItemArray = arrrayDeLinhas
					dt.Rows.Add(row)

				Loop

				DataGridView2.DataSource = dt

Existe alguma linha mal programada que faz com que altere a codificação?

Link to comment
Share on other sites

Com o system já não dá erro, no entanto fica na mesma

 Dim objReader As New StreamReader(nomeArquivo, System.Text.Encoding.UTF8) 

Fica um printscreen da maneira como me aparecem por exemplo os acentos:

http://img6.imageshack.us/img6/286/errocodificacao.png

Eu até postava o código todo, mas é muito grande e tinha que estar a alterar muita coisa para o poder postar...

Estou a desesperar 😞

Link to comment
Share on other sites

Problema resolvido.

Tão simples e tão inapropriado, mas o código que faz funcionar bem a codificação é:

 Dim objReader As New StreamReader(nomeArquivo, System.Text.Encoding.Default

Tópico Encerrado.

Obrigado pela ajuda Caça 😉

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.