Aller au contenu
uencoder

Comment en Détecter Texte Codage

Identifier le caractère codage de un fichier ou octet stream quand le codage est non declared.

问题

You received un fichier sans un charset declaration et besoin en determine whether it est UTF-8, Latin-1, ou another codage avant processing it.

Prérequis

  • Understanding of character sets
  • Familiarity with byte sequences

Étapes

  1. 1. Check for a BOM

    Read the first few bytes. A UTF-8 BOM is EF BB BF, UTF-16 LE is FF FE, and UTF-16 BE is FE FF. If a BOM is present, the encoding is unambiguous. Many tools strip the BOM after detection.

    entrée
    EF BB BF 23 20
    输出
    UTF-8 with BOM
  2. 2. Validate against UTF-8

    UTF-8 has strict byte patterns: continuation bytes start with 10xxxxxx, and lead bytes follow specific ranges. If the stream passes UTF-8 validation without errors, it is very likely UTF-8. If it fails, try Windows-1252 or ISO-8859-1.

    entrée
    48 65 6C 6C 6F
    输出
    valid UTF-8 (ASCII subset)
  3. 3. Use statistical detection as fallback

    When no BOM exists and UTF-8 validation fails, use a statistical detector that analyses byte frequency and n-gram patterns to guess the most likely encoding. Always treat the result as a guess and let the user confirm.

    entrée
    mixed bytes
    输出
    probable: Windows-1252 (confidence 87%)

Résultat attendu

Un best-guess codage libellé avec un confidence niveau, ou un definitive résultat si un BOM ou strict validation succeeds.

Erreurs courantes

Trusting statistical detection blindly
Statistical detection can be wrong. Always provide a way for the user to override the detected encoding.
Ignoring the BOM
Always check for a BOM first. It is the only definitive indicator and should be stripped after detection.

Dépannage指引

  • If UTF-8 validation fails on a file that should be UTF-8, check for mixed encodings or corruption.
  • Windows-1252 is a superset of ISO-8859-1 and is the more likely fallback for Western text.

Limites de sécurité

  • Encoding detection can be fooled by crafted byte sequences. Do not make security decisions based solely on detected encoding.

Outils associés

参考链接