Archivos con Caracteres Extraños Ocultos

691 views
Skip to first unread message

Blues

unread,
Jan 21, 2008, 9:57:40 AM1/21/08
to
Estimados, he estado buscando la siguiente información sin resultado
alguno....

Tengo un Upload de archivos que a parte de subir el archivo al
servidor lo abre y lee lo que trae, según fomrato definido y luego
carga la info en un Base de Datos. El problema que he tenido
últimamente es que en algunos archivos vienen caracteres Ocultos, que
a simple vista no se ven... he tenido que abrir el archivo con
UltraEdit o Wordpad Plus para poder ver esos caracteres y eliminarlos.

Utilizo UTF-8 para abrir el archivo pero i problema es el
siguiente...
Cuando subo el archivo a la BDD el sistema debe borrar todos los
caracteres no permitidos segun una Nomra para otros procesos, a saber
Acentos, Comillas, etc...
Ahora bien...eso el sistema lo hace.pero... mi problema es que hay
caracteres extraños ocultos que no logro ver ni por vista, ni por
sistema(Al ejecutarlo)

Ejemplo:
Si abro el archivo con NotePad, o el sistema .. la siguiente línea
aparentemente viene bien

20141043447MENULES  CARRIL SOFIA
Entre Menules y Carril hay dos espacios


Pero si abro el archivo con un UltraEdit o un WordPad ++
La Línea se ve así
20141043447MENULES CARRIL SOFIA
El doble espacio que habia entre Menules y Carril hay un caracter
extraño (Que en NotePad se interpretó como un espacio adicional)


La pregunta.. cómo le puedo hacer para poder leer los caracteres
ocultos?
He pensao en cambiar el UTF-8 pero me dejará de mostrar otros
caracteres que si son válidos, o provocara otro tipo de error...

Desde ya mil gracias por la información.


Buena Vida...
F.CH.G

Jhonny Vargas P.

unread,
Jan 21, 2008, 10:16:13 AM1/21/08
to
Hola Pancho,

Al momento de leer el archivo cambia el enconding por otro, por ejemplo a
UTF-32..

Try
' Create an instance of StreamReader to read from a file.
Using sr As System.IO.StreamReader = New
System.IO.StreamReader("TestFile.txt", System.Text.Encoding.UTF32)
Dim line As String
' Read and display the lines from the file until the end
' of the file is reached.
Do
line = sr.ReadLine()
Console.WriteLine(line)
Loop Until line Is Nothing
sr.Close()
End Using
Catch E As Exception
' Let the user know what went wrong.
Console.WriteLine("The file could not be read:")
Console.WriteLine(E.Message)
End Try


En el framework 2.0 también puedes colocar que lo lea por defecto el
encoding correspondiente.

Using sr As System.IO.StreamReader = New
System.IO.StreamReader("TestFile.txt", True)
Dim line As String
' Read and display the lines from the file until the end
' of the file is reached.
Do
line = sr.ReadLine()
Console.WriteLine(line)
Loop Until line Is Nothing
sr.Close()
End Using


--
Saludos,
Jhonny Vargas P.
http://msmvps.com/jvargas


"Blues" <Bluesm...@gmail.com> escribió en el mensaje de
noticias:4b6cc48b-a2ae-4152...@d4g2000prg.googlegroups.com...

cesarjesu...@gmail.com

unread,
Feb 6, 2017, 5:14:00 PM2/6/17
to
Yo intenté esta solución, con un problema similar, y funcionó!

$response = preg_replace('/[\x00-\x1F\x80-\xFF]/', '', $response);
Reply all
Reply to author
Forward
0 new messages