¿Cómo sé si está cifrado? Leí que para GAL16V8D sólo las últimas líneas son 0101... las primeras líneas son 111... ¿está cifrado?
Convierta todos los formatos a codificación UTF8
(Originalmente lo leí para XML, MSXML es demasiado exigente y solo lee el formato UTF-8 ------ Pero hay Todavía hay problemas al convertir a UTF-8. El Bloc de notas parece poder leerlo sin problemas, pero todavía hay problemas al leerlo con MSXML).
Principio: Juzgar en función de los dos primeros caracteres del archivo
Nota: Ponlo en un módulo.
Uso: GetEncoding(ruta del archivo) para devolver una enumeración de codificación (imitación de .net)
Ejemplo:
Atenuar ReturnEncoding como codificación
ReturnEncoding = GetEncoding("C:\1.txt")
Si ReturnEncoding = UTF8 Entonces
'Procesamiento UTF
ElseIf ReturnEncoding = Unicode Entonces
'Unicode
Elseif ReturnEncoding = UnicodeBigEndian Entonces
'Procesamiento Unicode-BE
Else
'Procesamiento ANSI
Finalizar si
======== Codificación del módulo.bas=========
Opción explícita p>
Codificación de enumeración pública
ANSI
Unicode
UnicodeBigEndian
UTF8
End Enum
Función pública GetEncoding(Nombre de archivo como cadena) como codificación
En caso de error, GoTo Err
Dim fBytes(1) como byte, freeNum como entero
freeNum = FreeFile
Abrir nombre de archivo para acceso binario Leer como #freeNum
Obtener #freeNum, fBytes(0)
Obtener #freeNum, fBytes (1 )
Cerrar #freeNum
Obtener #freeNum, , fBytes(1)
Cerrar freeNum
Si fBytes(0) = amp ;HFF y fBytes(1) = amp;HFE Entonces GetEncoding = Unicode
Si fBytes(0) = amp;HFE y fBytes(1) = amp;HFF Entonces GetEncoding = UnicodeBigEndian
Si fBytes(0) = amp;HEF y fBytes(1) = amp;HBB Entonces GetEncoding = UTF8
Err:
Función final
Subarchivo público aUTF8( Nombre de archivo como String)
Dim fBytes() Como Byte, uniString Como String, freeNum Como Entero
Dim ADO_Stream Como Objeto
freeNum = FreeFile
ReDim fBytes(FileLen(FileName))
Abrir
Nombre de archivo para acceso binario Leer como #freeNum
Obtener #freeNum,, fBytes
Cerrar #freeNum
uniString = StrConv(fBytes, vbUnicode)
Establecer ADO_Stream = CreateObject("ADODB.Stream")
Con ADO_Stream = CreateObject("ADODB.Stream")