Kas ir MK?
Baitu secības atzīme (MK) vai baitu secības atzīme ir īpaša atzīme, kas ievietota unikoda failā, kas kodēts ar UTF-8, UTF16 vai UTF-32, lai identificētu unikoda faila kodējuma tipu. UTF-8 MK nav nepieciešama, jo to izmanto, lai atzīmētu vairāku baitu kodēta faila kodējuma tipu un baitu secību (big-endian vai little-endian). UTF-8 katrai rakstzīmei kodēto bitu skaits tiek izteikts ar pirmo baitu, un nav atšķirības starp big-endian un little-endian. UTF-8 nav nepieciešama MK, lai gan Unicode standarts ļauj izmantot MK UTF-8. Tāpēc UTF-8 bez MK ir standarta forma, un galvenokārt Microsoft ieradums ir ievietot MK UTF-8 failā (starp citu: tas ir arī Microsoft ieradums izsaukt UTF-16 ar MK "Unicode", neiedziļinoties detaļās). MK tiek sagatavotas UTF-16 un UTF-32, lai atzīmētu baitu secību. Microsoft izmanto MK UTF-8, jo tas ļauj skaidri atšķirt UTF-8 un ASCII kodējumu, pretējā gadījumā CSV faila atvēršana programmā Excel var tikt izkropļota. Bet šāds fails var radīt problēmas operētājsistēmās, kas nav Windows. Atšķirība starp "UTF-8" un "UTF-8 ar MK" ir tā, vai ir MK vai nav. Tas ir, vai faila sākumā ir U+FEFF. UTF-8 tīmekļa kodam nevajadzētu izmantot MK, pretējā gadījumā kļūdas ir bieži sastopamas. Izvadot CSV failu no http atbildes, tas pēc noklusējuma netiek iekļauts, ja iestatīts uz utf8 MK, bet Windows Excel izmanto MK, lai apstiprinātu UTF8 kodējumu, un visiem ir jāraksta MK faila sākumā.
Kad pirmo reizi izstrādājat Java koda ģeneratoru, jūs ievietosiet failu tiešiRakstīšana UTF-8 failā, kurā ir MK tagsTas novedīs pie iepakošanas kļūdām:
Nelikumīgas rakstzīmes: '\ufeff'
Kā izmantot .NET / C#, lai noteiktu, vai failā ir MK tagi? , kods ir šāds:
Kolēģi, pievienotiKonvertē UTF-8 MK formātu UTF-8 (bez MK tagiem) formātā, pilns kods ir šāds:
(Beigas)
|