Nasze oprogramowanie biznesowe pozwala użytkownikowi zapisywać pewne dane jako CSV . Ponieważ na wolności jest wiele różnych formatów (wszystkie nazywane „CSV”), staramy się zdecydować, jak powinien wyglądać „format domyślny”.
Jeśli chodzi o separatory linii / pól i ucieczki, istnieje standard, którego możemy użyć: RFC 4180 .
Jeśli chodzi o kodowanie tekstu, wydaje się, że UTF-8 pojawił się w ostatniej dekadzie jako „domyślny format pliku tekstowego”, więc go wykorzystamy.
Pozostaje otwarte pytanie: czy powinniśmy dodać BOM na początku, czy nie? Czytałem wiele opinii i plusów / minusów na temat korzystania z BOM w ogóle, ale czy istnieje „oficjalna” rekomendacja lub przynajmniej jakiś konsensus społeczny w sprawie korzystania z BOM w plikach CSV?
źródło
Odpowiedzi:
Nie dla UTF-8 , ale zobacz różne zastrzeżenia w komentarzach.
Jest niepotrzebny (UTF-8 nie ma kolejności bajtów) w przeciwieństwie do UTF-16/32 i nie jest zalecany w standardzie Unicode . UTF-8 z BOM „na wolności” jest również dość rzadki, więc jeśli nie masz ważnego powodu (np. Jak skomentowano, będziesz pracować z oprogramowaniem, które oczekuje BOM), zaleciłbym podejście bez BOM .
Wikipedia wymienia niektóre głównie oprogramowanie Microsoft, które wymusza i oczekuje BOM, ale jeśli nie pracujesz z nimi, nie używaj go.
źródło
#!
nieważnym. W najlepszym wypadku BOM w UTF-8 jest „dozwolony, gdy nie wyklucza tego żaden specyficzny dla formatu / aplikacji wymóg”, nie jest „dozwolony” i jako taki nie powinien być używany. Normy są właściwie jasne, NIE POWINNY BYĆ.Nadal nie ma powszechnej konwencji AFAIK, choć z pewnością UTF-8 jest obecnie ogólnie akceptowany.
LM jest okropnym artefaktem:
Jest niewidoczny (przestrzeń zerowej szerokości).
Niektóre oprogramowanie może się zepsuć w nazwie pierwszej kolumny nie zawierającej tylko liter, ale ten dziwny BOM z przodu.
Linia nagłówka może być prawdopodobnie skopiowana dla linii wartości, które powodują uszkodzenie pierwszej wartości.
Jest potrzebny tylko niektórym programom Windows do rozróżnienia jednego z kodowań ANSI używanych przez lokalną maszynę Windows i UTF-8. Notatnik, Excel.
Więc smutne jest to, że należy wspierać zestawienie komponentów. Może opcjonalnie.
Użyj schematu nazewnictwa dla plików (...- utf8.txt, ...- utf8bom.txt).
W wielu przypadkach możemy użyć HTML jako alternatywy eksportu. Umożliwia to ustawienie kodowania w pliku. Dodatkową cechą jest kolorystyka wierszy i komórek w tle / na pierwszym planie. Co podnosi jakość eksportu.
źródło
-utf8-windows.csv
jest lepiej. Prawie wszyscy wiedzą, czym jest Windows, w kontekście komputerów, ale znacznie mniej użytkowników wie, co to jest znak bajtu.tschüß
śmieci,tschüß
które powinny zostać napisane. W StackOverflow wiele błędów IT dotyczy kodowania. Użytkownicy końcowi również będą mieli problemy.