Какую кодировку использовать для экспорта в CSV? - PullRequest
1 голос
/ 10 сентября 2009

Я разрабатываю приложение Java, которое экспортирует данные в файлы CSV, предназначенные для открытия в Excel конечными пользователями. Мы только что заметили, что функция экспорта использует кодировку платформы Java по умолчанию. Это приводит к потере символов umlaut и сбою модульного тестирования на сервере сборки (который настроен на использование US-ASCII в качестве кодировки по умолчанию для платформы для точного определения таких потенциальных проблем).

Вопрос в том, какую кодировку лучше всего использовать? Как Excel определяет, какую кодировку использовать? Использует ли он что-то специфичное для платформы, которое предположительно соответствует платформе Java по умолчанию?

В настоящее время я склоняюсь к жесткому кодированию Cp1252 - оно должно охватывать целевые машины (среда развертывания фактически указана) и решит проблему теста. Похоже, что Excel не очень хорошо справляется с UTF-8, так что это не так, и соблюдение кодировки платформы по умолчанию потребует некоторого обходного решения для тестов.

Ответы [ 4 ]

1 голос
/ 11 сентября 2009

Я ожидаю, что Excel будет хорошо работать с кодировкой платформы по умолчанию, так что придерживаться этого кажется лучшим выбором для Excel в общем случае. Проверка, является ли платформа по умолчанию US-ASCII, и использование Cp1252 вместо этого (я полагаю, взлом для тестов) будет концептуальным эквивалентом подавления предупреждения компилятора. Вы знаете, что это не относится в этом случае.

Однако, поскольку вы пишете, что управляете производственным развертыванием, почему вы не решаетесь использовать жесткий код Cp1252? Это кажется вполне разумным решением, если это целевая кодировка приложения.

0 голосов
/ 05 августа 2013

UTF-8 Должен хорошо работать сейчас. Я удалил продукты, затем сохранил их как CSV, использую WP All Import, затем загрузил этот CSV, все это преобразуется в XML, затем все загружается как сообщения WP. Большой! Взгляните на джем танган casio

0 голосов
/ 10 сентября 2009

Вы можете получить языковой стандарт системы (из системных свойств) и создать выходной файл с этой кодировкой. Если ваши файлы будут открыты только в Excel, может быть, вам стоит взглянуть на Apache POI?

0 голосов
/ 10 сентября 2009

Думаю, что Excel хорошо работает с UTF-16. Что не так с экспортом в UTF-16. По крайней мере, таким образом, символы, не являющиеся ascii, будут сохранены, вместо того, чтобы просто выбрасывать их.

Редактировать, хорошо, «хорошо» может преувеличить, как Excel работает с UTF-16, но все равно кажется, что UTF-16LE работает лучше, чем UTF-8

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...