Excel distrugge il carattere speciale quando viene salvato come CSV


21

Sto lavorando a un progetto che utilizza un file CSV fornito dal client per popolare un database. Il client deve creare il foglio di calcolo, quindi salvarlo come CSV da caricare, che viene quindi analizzato in un database.

Il problema è che ogni volta che il client salva il foglio di calcolo Excel come file CSV MS-DOS, molti dei caratteri speciali vengono convertiti in punti interrogativi "?" (simboli come '"/). Tuttavia, se apriamo il file CSV e lo sostituiamo manualmente con il carattere giusto, funziona correttamente.

Il problema è che il file di dati è ENORME e non possiamo ragionevolmente farlo, quindi speravo che ci fosse un modo per salvarlo. Abbiamo provato a esportare come Unicode e ASCII senza risultati. Abbiamo anche provato a caricare su Google Documenti e salvare di nuovo, tuttavia, si rompe anche quei caratteri.


2
Se sei su Excel 2007, nella finestra di dialogo Salva come file è appena rimasto del pulsante Salva un menu a discesa Strumenti. Se scegli l'opzione Web e nella scheda Codifica puoi selezionare una codifica specifica. Prova se ti è di aiuto

Qual è un esempio di quel testo?
enderland,

1
Il problema non è riproducibile. Assicurati che i dati siano effettivamente ciò che descrivi e non alcuni caratteri che non possono essere rappresentati nella codifica MS-DOS.
Jukka K. Korpela,

Risposte:


11

Assicurati di scegliere di salvare come a CSV (Comma Delimited)e non CSV (MS-DOS)come, poiché DOS non supporta i caratteri UTF-8.


6

Ho scoperto che il problema con il personaggio perso si verifica (nel mio caso) solo quando si salva dal formato xlsx al formato CSV. Ho provato prima a salvare il file xlsx su xls, quindi su CSV. In realtà ha funzionato.


Questo non funziona per me. Ho ancora? nel file csv
thanos.a

4

Una possibile soluzione alternativa è salvarlo come Unicode Text(nel 2007, non sono sicuro delle precedenti edizioni), che lo salva come file di testo separato da tabulazioni.

Questo file ha conservato i miei caratteri unicode (nel mio caso stavo lavorando con caratteri asiatici ) mentre producevo una sorta di file di testo delimitato che puoi quindi eseguire attraverso strumenti esterni per convertire in un CSV, se necessario.

Il mio input non aveva schede incorporate in ogni cella, tuttavia, e non sono sicuro di come sarebbe gestito.


3

Ecco cosa funziona per me:

  1. Apporta correzioni dei dati in Excel o CSV
  2. Salva file come testo Unicode
  3. Apri NOTEPAD
  4. Apri il file Unicode che hai appena salvato utilizzando NOTEPAD
  5. Usa il cursore per evidenziare un'area vuota che contiene una singola scheda 5a. Usa lo spazio tra l'ID acquisizione e il tipo di richiesta perché contiene UNA TAB!
  6. Premi Cnrl-C per copiare il carattere di tabulazione
  7. Digitare Cnlr-H per aprire la casella di funzione Sostituisci
  8. Fare clic nella casella di testo Trova e digitare Cnlr-V per incollare la scheda
  9. Fare clic nella casella Sostituisci con testo e digitare una virgola
  10. Fai clic su Sostituisci per provarlo una volta. Conferma che la scheda nel file viene sostituita con una virgola
  11. Fai clic su Sostituisci tutto
  12. Fai clic su Annulla
  13. Salva il file ed esci
  14. In Esplora risorse, modifica l'estensione del file in .csv

1
Questo ha funzionato per me, usando Notepad ++.
ChrisB,

Sì, ho dovuto esportare come Unicode e trovare e sostituire le schede anche tra virgole.
nilloc,

2

Ho avuto questo problema da un po 'di tempo e finalmente mi sono dedicato del tempo per capirlo! Sono stato in grado (apparentemente) di risolvere il problema salvando come "Windows Comma Separated (.csv)". L'ho provato da un .xlsx e un .xls, entrambi convertiti in un .csv bene. Spero che questo aiuti - fammi sapere se si presentano problemi con questo metodo. Riferirò se vedo qualcosa nelle prossime settimane.


1
Benvenuto in Super User. Sono contento di vederti saltare subito dentro per rispondere alle domande.
CharlieRB,

1

Soluzione:

  1. Apri il tuo file CSV in Blocco note (noterai che dice ANSI), quindi salvalo nuovamente come UTF-8 in Blocco note.

  2. Quindi l'importazione dovrebbe funzionare. Se tuttavia, lo apri di nuovo in Excel e semplicemente Salva non funzionerà perché Excel non può codificare in modo nativo in UTF-8 apparentemente.

  3. L'altra opzione è quella di lavorare con il tuo file CSV in www.LibreOffice.org (gratuito), che può essere codificato correttamente in UTF-8 (non l'ho provato io stesso).

Ho riscontrato un problema simile con l'importazione di un csv di prodotti con frazioni in WooCommerce, che è stato rifiutato a causa di "?" caratteri di errore. Questo perché il file CSV non è stato codificato in UTF-8. TUTTAVIA, anche dopo aver salvato il file CSV in Excel con codifica UTF-8, non ha ancora funzionato.

Dopo aver sfogliato più forum, sembra che Excel fornisca la possibilità di codificare come UTF-8 - quando SALVA COME CSV, Excel lo converte automaticamente in ANSI, anche se si seleziona UTF-8.



0

Ho anche affrontato il problema con caratteri speciali durante il download dei termini giapponesi in formato .csv. Tuttavia, quando ho salvato il file .csv in formato testo (delimitato da tabulazioni), i caratteri giapponesi erano popolati perfettamente. Quindi ho appena copiato i dati dal file di testo e incollato in un foglio di calcolo. Ha funzionato bene !!!

Grazie, Vaishakh


Questo non fornisce una risposta alla domanda. Per criticare o richiedere chiarimenti a un autore, lascia un commento sotto il suo post: puoi sempre commentare i tuoi post e una volta che avrai una reputazione sufficiente sarai in grado di commentare qualsiasi post .
Ramhound,

0

Ho trovato la migliore soluzione di sempre: http://woshka.com/blog/microsoft/microsoft-excel/solve-the-problem-saving-excel-csv-format-with-utf-8-unicode-encoding.html

Dal link:

1-Click sul menu di avvio

2-Seleziona il pannello di controllo

3-Trova le opzioni internazionali e della lingua in modalità classica o digita il nome sulla barra di ricerca in alto a destra nella finestra del pannello di controllo

4-Fare clic sulla scheda avanzata e fare clic su locali

5-Fare clic su persiano o arabo o sul programma di codifica UTF-08 desiderato che si desidera salvare con Excel in CSV


woshka.com non è più un URL valido, al momento è un dominio parcheggiato.
Craig London,

0

per the ™ ho trovato una soluzione. Nel file .xlsx, sostituisci tutto "™" con "& tr-ade;". rimuovere il - da sostituire con. Salvare il file come .csv e tutto è fatto. vorrei che funzioni per te.


0

Su un computer Mac, questo è ciò che ha funzionato per me.

Su Excel scegli Salva con nome e quindi dal menu a discesa scegli Windows separato da virgola (CSV).

Funziona e basta !!!


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.