Αυτό το άρθρο είναι ένα άρθρο καθρέφτη της αυτόματης μετάφρασης, κάντε κλικ εδώ για να μεταβείτε στο αρχικό άρθρο.

Άποψη: 48991|Απάντηση: 3

[Πηγή] .NET/C# για να προσδιορίσετε εάν περιλαμβάνεται μια ετικέτα BOM

[Αντιγραφή συνδέσμου]
Δημοσιεύτηκε στις 16/7/2021 1:22:54 μ.μ. | | | |
Τι είναι το BOM;

Το σήμα σειράς byte (BOM) ή σήμα σειράς byte, είναι ένα ειδικό σήμα που εισάγεται σε ένα αρχείο Unicode κωδικοποιημένο με UTF-8, UTF16 ή UTF-32 για τον προσδιορισμό του τύπου κωδικοποίησης ενός αρχείου Unicode. Για το UTF-8, δεν απαιτείται BOM, καθώς χρησιμοποιείται για τη σήμανση του τύπου κωδικοποίησης και της σειράς byte (big-endian ή little-endian) ενός κωδικοποιημένου αρχείου πολλών byte. Στο UTF-8, ο αριθμός των bit που κωδικοποιούνται για κάθε χαρακτήρα εκφράζεται από το πρώτο byte και δεν υπάρχει διάκριση μεταξύ big-endian και little-endian.
Το UTF-8 δεν απαιτεί BOM, αν και το πρότυπο Unicode επιτρέπει τη χρήση BOM στο UTF-8. Επομένως, το UTF-8 χωρίς BOM είναι η τυπική μορφή και είναι κυρίως η συνήθεια της Microsoft να τοποθετεί ένα BOM σε ένα αρχείο UTF-8 (παρεμπιπτόντως: είναι επίσης συνήθεια της Microsoft να αποκαλεί το UTF-16 με ένα BOM "Unicode" χωρίς να υπεισέρχεται σε λεπτομέρειες).
Τα BOM προετοιμάζονται για UTF-16 και UTF-32 για να επισημάνουν τη σειρά byte. Η Microsoft χρησιμοποιεί το BOM στο UTF-8 επειδή επιτρέπει μια σαφή διάκριση μεταξύ κωδικοποίησης UTF-8 και ASCII, διαφορετικά το άνοιγμα ενός αρχείου CSV στο Excel μπορεί να είναι αλλοιωμένο. Αλλά ένα τέτοιο αρχείο μπορεί να προκαλέσει προβλήματα σε λειτουργικά συστήματα εκτός των Windows.
Η διαφορά μεταξύ "UTF-8" και "UTF-8 με BOM" είναι αν υπάρχει BOM ή όχι. Δηλαδή αν υπάρχει U+FEFF στην αρχή του αρχείου.
Ο κώδικας ιστού UTF-8 δεν πρέπει να χρησιμοποιεί BOM, διαφορετικά τα σφάλματα είναι κοινά. Κατά την έξοδο ενός αρχείου CSV από απόκριση http, δεν περιλαμβάνεται από προεπιλογή όταν έχει οριστεί σε utf8
BOM, αλλά το Windows Excel χρησιμοποιεί BOM για να επιβεβαιώσει την κωδικοποίηση UTF8 και όλα πρέπει να γράψουν BOM στην αρχή του αρχείου.



Όταν αναπτύσσετε για πρώτη φορά μια γεννήτρια κώδικα Java, θα βάλετε το αρχείο απευθείαςΕγγραφή σε αρχείο UTF-8 που περιέχει την ετικέτα BOMΑυτό θα οδηγήσει σε σφάλματα συσκευασίας, ως εξής:

Παράνομοι χαρακτήρες: '\ufeff'


Πώς μπορώ να χρησιμοποιήσω το .NET / C# για να προσδιορίσω εάν ένα αρχείο περιέχει ετικέτες BOM; , ο κωδικός έχει ως εξής:





Συνάδελφοι, συνημμένοιΜετατρέπει τη μορφή UTF-8 BOM σε μορφή UTF-8 (χωρίς ετικέτες BOM), ο πλήρης κώδικας έχει ως εξής:

(Τέλος)

Παρτιτούρα

Αριθμός συμμετεχόντων1ΜΒ+1 συνεισφέρω+1 Κατάρρευση λόγος
Μο Φενγκ 123 + 1 + 1 Πολύ δυνατό!

Δείτε όλες τις αξιολογήσεις





Προηγούμενος:Ο SQL SERVER καταργεί τη συνάρτηση διαγραφής διαμερίσματος και το σχήμα διαμερισμάτων
Επόμενος:Το αποτύπωμα χώρου κάθε πίνακα στη βάση δεδομένων του SQL Server
Δημοσιεύτηκε στις 16/7/2021 10:41:40 μ.μ. |
 Σπιτονοικοκύρης| Δημοσιεύτηκε στις 1/11/2024 3:00:47 μ.μ. |
Το UTF-8 αφαιρεί την ετικέτα BOM

 Σπιτονοικοκύρης| Δημοσιεύτηκε στις 25/6/2025 4:13:03 μ.μ. |
Το utf-8 δεν γράφει στο BOM
Αποκήρυξη:
Όλο το λογισμικό, το υλικό προγραμματισμού ή τα άρθρα που δημοσιεύονται από το Code Farmer Network προορίζονται μόνο για μαθησιακούς και ερευνητικούς σκοπούς. Το παραπάνω περιεχόμενο δεν θα χρησιμοποιηθεί για εμπορικούς ή παράνομους σκοπούς, άλλως οι χρήστες θα υποστούν όλες τις συνέπειες. Οι πληροφορίες σε αυτόν τον ιστότοπο προέρχονται από το Διαδίκτυο και οι διαφορές πνευματικών δικαιωμάτων δεν έχουν καμία σχέση με αυτόν τον ιστότοπο. Πρέπει να διαγράψετε εντελώς το παραπάνω περιεχόμενο από τον υπολογιστή σας εντός 24 ωρών από τη λήψη. Εάν σας αρέσει το πρόγραμμα, υποστηρίξτε γνήσιο λογισμικό, αγοράστε εγγραφή και λάβετε καλύτερες γνήσιες υπηρεσίες. Εάν υπάρχει οποιαδήποτε παραβίαση, επικοινωνήστε μαζί μας μέσω email.

Mail To:help@itsvse.com