Наше программное обеспечение для бизнеса позволяет пользователю сохранять определенные данные в формате CSV . Поскольку в дикой природе используется много разных форматов (все они называются «CSV»), мы пытаемся решить, как должен выглядеть «формат по умолчанию».
Что касается разделителей строк / полей и экранирования, существует стандарт, который мы можем использовать: RFC 4180 .
Что касается кодирования текста, UTF-8, похоже, появился в последнее десятилетие как «формат текстового файла по умолчанию», поэтому мы будем его использовать.
Один вопрос остается открытым: должны ли мы добавить спецификацию в начале или нет? Я прочитал множество мнений и плюсов / минусов в отношении использования спецификаций в целом, но существует ли «официальная» рекомендация или хотя бы какой-то консенсус сообщества относительно использования спецификаций в файлах CSV?
источник
Ответы:
Не для UTF-8 , но смотрите различные предостережения в комментариях.
Это не нужно (UTF-8 не имеет порядка байтов) в отличие от UTF-16/32 и не рекомендуется в стандарте Unicode . Также довольно редко можно встретить UTF-8 с BOM «в дикой природе», поэтому, если у вас нет веской причины (например, как прокомментировано, вы будете работать с программным обеспечением, ожидающим BOM), я бы порекомендовал подход без BOM ,
В Википедии упоминается в основном программное обеспечение Microsoft, которое вынуждает и ожидает спецификацию, но если вы не работаете с ними, не используйте ее.
источник
#!
недействительным. В лучшем случае спецификация в UTF-8 «разрешена, когда никакие требования к формату / приложению не исключают ее», а не «разрешена», и поэтому ее не следует использовать. Стандарты на самом деле ясно, НЕ ДОЛЖНЫ.Там все еще нет широко распространенного соглашения AFAIK, хотя, конечно, UTF-8 в настоящее время является общепринятым.
Спецификация - это ужасный артефакт:
Он невидим (пространство нулевой ширины).
Некоторое программное обеспечение может сломаться в имени первого столбца, содержащего не только буквы, но и странную спецификацию впереди.
Строка заголовка может быть скопирована для строк значения, повреждающих первое значение.
Это требуется только для некоторых программ Windows для разграничения между одним из кодировок ANSI, используемых на этом локальном компьютере Windows, и UTF-8. Блокнот, Excel.
Так что печально то, что нужно поддерживать спецификацию. Может быть необязательным.
Используйте схему именования файлов (...- utf8.txt, ...- utf8bom.txt).
Во многих случаях мы могли бы использовать HTML в качестве альтернативы экспорта. Это позволяет установить кодировку в файле. Дополнительной функцией является цвет фона / переднего плана строк и ячеек. Что повышает качество экспорта.
источник
-utf8-windows.csv
лучше. Почти все знают, что такое Windows в контексте компьютеров, но гораздо меньше пользователей знают, что такое знак порядка байтов.tschüß
поскольку ониtschüß
должны быть написаны. На StackOverflow многие ИТ-ошибки касаются кодировок. У конечных пользователей тоже будут проблемы.