Kas yra KS?
Baitų eiliškumo ženklas (KS) arba baitų eilės ženklas yra specialus ženklas, įterptas į Unicode failą, užkoduotą UTF-8, UTF16 arba UTF-32, siekiant identifikuoti Unicode failo kodavimo tipą. UTF-8 KS nereikia, nes ji naudojama kelių baitų užkoduoto failo kodavimo tipui ir baitų tvarkai (big-endian arba little-endian) pažymėti. UTF-8 kiekvienam simboliui užkoduotų bitų skaičius išreiškiamas pirmuoju baitu, ir nėra skirtumo tarp big-endian ir little-endian. UTF-8 KS nereikia, nors Unicode standartas leidžia naudoti KS UTF-8. Todėl UTF-8 be KS yra standartinė forma, ir daugiausia "Microsoft" įprotis yra įdėti KS į UTF-8 failą (beje: "Microsoft" taip pat įprotis vadinti UTF-16 su KS "Unicode", nesigilinant į detales). KS ruošiamos UTF-16 ir UTF-32, kad būtų galima pažymėti baitų tvarką. "Microsoft" naudoja KS UTF-8, nes ji leidžia aiškiai atskirti UTF-8 ir ASCII kodavimą, kitaip CSV failo atidarymas programoje "Excel" gali būti iškraipytas. Tačiau toks failas gali sukelti problemų kitose operacinėse sistemose nei "Windows". Skirtumas tarp "UTF-8" ir "UTF-8 su KS" yra tai, ar yra KS, ar ne. Tai yra, ar failo pradžioje yra U+FEFF. UTF-8 žiniatinklio kodas neturėtų naudoti KS, kitaip klaidos yra dažnos. Išvedant CSV failą iš http atsakymo, jis neįtraukiamas pagal numatytuosius nustatymus, kai nustatytas utf8 KS, bet Windows Excel naudoja KS UTF8 kodavimui patvirtinti, ir visi turi įrašyti KS failo pradžioje.
Kai pirmą kartą sukursite "Java" kodo generatorių, failą įdėsite tiesiaiRašyti į UTF-8 failą, kuriame yra KS žymėTai sukels pakavimo klaidų:
Neleistini simboliai: '\ufeff'
Kaip naudoti .NET / C# norint nustatyti, ar faile yra KS žymių? , kodas yra toks:
Kolegos, pridedamiKonvertuoja UTF-8 KS formatą į UTF-8 (be KS žymių) formatą, visas kodas yra toks:
(Pabaiga)
|