excel - tipos - reparar archivo de word con simbolos
¿Qué juego de caracteres usa Microsoft Excel al guardar archivos? (9)
Tengo una aplicación Java que lee archivos CSV que se han creado en Excel (por ejemplo, 2007). ¿Alguien sabe qué charset MS Excel usa para guardar estos archivos?
Yo hubiera adivinado cualquiera:
- Windows-1255 (Cp1255)
- ISO-8859-1
- UTF8
pero no puedo decodificar caracteres extendidos (por ejemplo, letras acentuadas en francés) usando cualquiera de estos tipos de juegos de caracteres.
Desde la memoria, Excel usa la codificación ANSI específica de la máquina. Así que este sería Windows-1252 para una instalación EN-US, 1251 para ruso, etc.
Despertar este hilo viejo ... Ahora estamos en 2017. Y todavía Excel no puede guardar una hoja de cálculo simple en un formato CSV conservando la codificación original ... Simplemente increíble.
Afortunadamente Google Docs vive en el siglo correcto. La solución para mí es simplemente abrir la hoja de cálculo con Google Docs, luego descargarla de nuevo como CSV. El resultado es un archivo CSV codificado correctamente (con todas las cadenas codificadas en UTF8).
Los archivos CSV pueden tener cualquier formato, dependiendo de la opción de codificación especificada durante la exportación desde Excel: (cuadro de diálogo Guardar, botón Herramientas, elemento de opciones web, pestaña Codificación)
ACTUALIZACIÓN: Excel (incluido Office 2013) en realidad no respeta las opciones web seleccionadas en el diálogo "guardar como ...", por lo que este es un error de algún tipo. Solo uso OpenOffice Calc ahora para abrir mis archivos XLSX y exportarlos como archivos CSV (edite la configuración del filtro, elija la codificación UTF-8).
Puede usar este código de Visual Studio VB.Net para obtener la codificación:
Dim strEncryptionType As String = String.Empty
Dim myStreamRdr As System.IO.StreamReader = New System.IO.StreamReader(myFileName, True)
Dim myString As String = myStreamRdr.ReadToEnd()
strEncryptionType = myStreamRdr.CurrentEncoding.EncodingName
Si bien es cierto que exportar un archivo de Excel que contenga caracteres especiales a CSV puede ser un dolor de cabeza, sin embargo, hay un trabajo simple: simplemente copie / pegue las celdas en un google docs y luego guarde desde allí.
Tuve un problema similar la semana pasada. Recibí varios archivos CSV con distintas codificaciones. Antes de importar a la base de datos, utilicé la librería chardet para rastrear automáticamente la codificación correcta.
Chardet es un puerto del motor de detección de caracteres de Mozillas y si el tamaño de la muestra es lo suficientemente grande (un carácter acentuado no funcionará) funciona muy bien.
cp1250 se utiliza ampliamente en documentos de Microsoft Office, incluidos Word y Excel 2003.
http://en.wikipedia.org/wiki/Windows-1250
Una manera simple de confirmar esto sería:
- Cree una hoja de cálculo con caracteres de orden superior, por ejemplo, "Veszprém" en una de las celdas;
- Use su lenguaje de scripting favorito para analizar y decodificar la hoja de cálculo;
- Mira lo que produce tu secuencia de comandos cuando imprimes los datos decodificados.
Ejemplo de script perl:
#!perl
use strict;
use Spreadsheet::ParseExcel::Simple;
use Encode qw( decode );
my $file = "my_spreadsheet.xls";
my $xls = Spreadsheet::ParseExcel::Simple->read( $file );
my $sheet = [ $xls->sheets ]->[0];
while ($sheet->has_data) {
my @data = $sheet->next_row;
for my $datum ( @data ) {
print decode( ''cp1250'', $datum );
}
}
Russian Edition
ofrece CSV
, CSV (Macintosh)
y CSV (DOS)
.
Al guardar en CSV
simple, usa windows-1251
.
Intenté guardar el Résumé
francés junto con el texto en ruso, lo guardé en HEX
como 52 3F 73 75 6D 3F
, siendo 3F
el código ASCII
para el question mark
.
Cuando abrí el archivo CSV
, la palabra, por supuesto, se volvió ilegible ( R?sum?
)