IMPORTACAO DE .TXT COM CARACTERES ESTRANHOS
Bom dia Todos....
Tenho esse Anexo que importei de um arquivo .txt, mas a letra Ç veio com esse Caracter � ficando a palavra assim [Ô]SERVI�O[Ô] e salvou no Banco de Dados desse jeito também..
Assim as letras á é ó ú â ã ô ô tambem ficam com esse caracter �.
Tem que fazer alguma conversão na importação ?
O campo do banco de dados é do tipo nvarchar....
Tenho esse Anexo que importei de um arquivo .txt, mas a letra Ç veio com esse Caracter � ficando a palavra assim [Ô]SERVI�O[Ô] e salvou no Banco de Dados desse jeito também..
Assim as letras á é ó ú â ã ô ô tambem ficam com esse caracter �.
Tem que fazer alguma conversão na importação ?
O campo do banco de dados é do tipo nvarchar....
Como você fez a leitura do arquivo? Você provavelmente não está passando a codificação do texto para fazer a leitura e ele deve estar pegando uma padrão, provavelmente UTF8.
Fiz isso para ler o .txt...
using (StreamReader texto = new StreamReader(arquivo))
{
while ((mensagem = texto.ReadLine()) != null)
{
mensagemLinha.Add(mensagem);
}
}
int registro = mensagemLinha.Count;
for (int i = 0; i < mensagemLinha.Count; i++)
{
if (Funcoes.Mid(mensagemLinha[i], 1, 1) == [Ô]C[Ô])
{
if (EscritaFiscal.ValidaCNPJ.IsCnpj(Funcoes.Mid(mensagemLinha[i], 3, 18)) == false)
{
List.Items.Add(Funcoes.Mid(mensagemLinha[i], 3, 18) + [Ô] - Registro que não foi importado CNPJ inválido Cliente[Ô]);
}
}
}
using (StreamReader texto = new StreamReader(arquivo))
{
while ((mensagem = texto.ReadLine()) != null)
{
mensagemLinha.Add(mensagem);
}
}
int registro = mensagemLinha.Count;
for (int i = 0; i < mensagemLinha.Count; i++)
{
if (Funcoes.Mid(mensagemLinha[i], 1, 1) == [Ô]C[Ô])
{
if (EscritaFiscal.ValidaCNPJ.IsCnpj(Funcoes.Mid(mensagemLinha[i], 3, 18)) == false)
{
List.Items.Add(Funcoes.Mid(mensagemLinha[i], 3, 18) + [Ô] - Registro que não foi importado CNPJ inválido Cliente[Ô]);
}
}
}
Até mudei a forma de importar e continua com o mesmo problema....fiz assim agora...
System.IO.StreamReader sr;
string linhaAtual;
using (sr = new System.IO.StreamReader(arquivo))
{
while (!sr.EndOfStream)
{
linhaAtual = sr.ReadLine();
}
}
System.IO.StreamReader sr;
string linhaAtual;
using (sr = new System.IO.StreamReader(arquivo))
{
while (!sr.EndOfStream)
{
linhaAtual = sr.ReadLine();
}
}
Só uma dica nada a vez com sua dúvida, cuidado com a exposição de dados dos seus clientes na web, tente esconder caso ache necessário.
Veja que você está criando o StreamReader sem passar a codificação para ele, nesse caso ele considera que a codificação vai ser UTF8, só que o seu texto provavelmente está como Windows-1252 que é o padrão usado para o português.
Tente mudar a linha
using (sr = new System.IO.StreamReader(arquivo))
para
using (sr = new System.IO.StreamReader(arquivo, System.Text.Encoding.GetEncoding([Ô]Windows-1252[Ô])))
Tente mudar a linha
using (sr = new System.IO.StreamReader(arquivo))
para
using (sr = new System.IO.StreamReader(arquivo, System.Text.Encoding.GetEncoding([Ô]Windows-1252[Ô])))
Citação::
Só uma dica nada a vez com sua dúvida, cuidado com a exposição de dados dos seus clientes na web, tente esconder caso ache necessário.
é eu sei.....marquei agora......mas na vdd nem são meus clientes é um arquivo qualquer que peguei aki...mas mesmo assim que eu fiz não pode....na hora nem me toquei....valews pelo alerta....
OCELOT..agora deu certo....não sabia que precisa disso no c#....
Tópico encerrado , respostas não são mais permitidas