Domanda

Sto sviluppando un'app Java che esporta i dati in file CSV, destinati ad essere aperti in Excel dagli utenti finali. Abbiamo appena notato che la funzione di esportazione utilizza la codifica predefinita della piattaforma Java. Ciò causa la perdita di caratteri umlaut e il fallimento del test unitario sul server di build (che è configurato per avere US-ASCII come codifica predefinita della piattaforma esattamente per rilevare tali potenziali problemi).

La domanda è: quale sarebbe la migliore codifica da usare? In che modo Excel determina quale codifica utilizzare? Utilizza qualcosa di specifico della piattaforma che presumibilmente corrisponde all'impostazione predefinita della piattaforma Java?

Attualmente mi sto orientando verso l'hardcoding Cp1252 - che dovrebbe coprire i computer di destinazione (l'ambiente di distribuzione è effettivamente specificato) e risolverebbe il problema del test. Da googling in giro, Excel non sembra gestire bene UTF-8, quindi è fuori, e attenersi alla codifica predefinita della piattaforma richiederebbe una sorta di soluzione alternativa per i test.

È stato utile?

Soluzione

Mi aspetto che Excel funzioni bene con la codifica predefinita della piattaforma, quindi attenersi a questa sembra la scelta migliore per Excel nel caso generale. Controllare se il valore predefinito della piattaforma è US-ASCII e utilizzare invece Cp1252 (suppongo che l'hack per i test) sarebbe l'equivalente concettuale della soppressione di un avviso del compilatore. Sai che non si applica in questo caso.

Tuttavia, poiché si scrive che si controlla l'implementazione della produzione, perché esitare nel codice hard Cp1252? Sembra una soluzione perfettamente ragionevole se questa è la codifica di destinazione dell'applicazione.

Altri suggerimenti

È possibile ottenere le impostazioni internazionali del sistema (dalle proprietà del sistema) e creare un file di output con tale codifica. Se i tuoi file verranno aperti solo in Excel potrebbe essere necessario dare un'occhiata al POI di Apache?

Think Excel funziona bene con UTF-16. Cosa c'è di sbagliato nell'esportazione in UTF-16. Almeno in questo modo i personaggi non ascii verranno conservati, invece di buttarli via.

Modifica, ok, 'beh' potrebbe esagerare come funziona Excel con UTF-16, ma sembra comunque che UTF-16LE funzioni meglio di UTF-8

UTF-8 Dovrebbe funzionare bene ora. Ho raschiato i prodotti e li ho salvati come CSV, ho usato WP All Import, quindi ho caricato questo CSV, tutto questo è stato convertito in XML e poi tutti sono stati caricati come post WP. Grande! Dai un'occhiata a jam tangan casio

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top