std:: codecvt_mode
| 
           
           Défini dans l'en-tête
            
         
            
             <codecvt>
            
           
           | 
         ||
| 
           
           
            
             enum
            
            codecvt_mode
            
             {
            
             
         
             consume_header
             
              =
             
             
              4
             
             ,
               | 
         
          
           (depuis C++11)
          
           (obsolète en C++17) (supprimé en C++26)  | 
        |
       Les facettes
       
        
         std::codecvt_utf8
        
       
       ,
       
        
         std::codecvt_utf16
        
       
       , et
       
        
         std::codecvt_utf8_utf16
        
       
       acceptent une valeur optionnelle de type
       
        std::codecvt_mode
       
       comme argument de template, qui spécifie les fonctionnalités optionnelles de la conversion de chaîne unicode.
      
Constantes
| 
          
          Défini dans l'en-tête
           
        
           
            <locale>
           
          
          | 
       |
| Énumérateur | Signification | 
         
          little_endian
         
         | 
        suppose que l'entrée est en ordre des octets petit-boutiste (s'applique uniquement à l'entrée UTF-16, l'ordre par défaut est gros-boutiste) | 
         
          consume_header
         
         | 
        consomme la marque d'ordre des octets, si présente au début de la séquence d'entrée, et (dans le cas d'UTF-16) s'appuie sur l'ordre des octets qu'elle spécifie pour décoder le reste de l'entrée | 
         
          generate_header
         
         | 
        génère la marque d'ordre des octets au début de la séquence de sortie | 
Les marques d'ordre des octets reconnues sont :
         
          0xfe 0xff
         
         | 
        UTF-16 big-endian | 
         
          0xff 0xfe
         
         | 
        UTF-16 little-endian | 
         
          0xef 0xbb 0xbf
         
         | 
        UTF-8 (aucun effet sur l'endianité) | 
       Si
       
        std::consume_header
       
       n'est pas sélectionné lors de la lecture d'un fichier commençant par une marque d'ordre des octets, le caractère Unicode U+FEFF (espace insécable de largeur nulle) sera lu comme premier caractère du contenu de la chaîne.
      
Exemple
L'exemple suivant illustre la consommation du BOM UTF-8 :
#include <codecvt> #include <cwchar> #include <fstream> #include <iostream> #include <locale> #include <string> int main() { // UTF-8 data with BOM std::ofstream{"text.txt"} << "\ufeffz\u6c34\U0001d10b"; // read the UTF-8 file, skipping the BOM std::wifstream fin{"text.txt"}; fin.imbue(std::locale(fin.getloc(), new std::codecvt_utf8<wchar_t, 0x10ffff, std::consume_header>)); for (wchar_t c; fin.get(c);) std::cout << std::hex << std::showbase << (std::wint_t)c << '\n'; }
Sortie :
0x7a 0x6c34 0x1d10b
Voir aussi
| 
         convertit entre les encodages de caractères, y compris UTF-8, UTF-16, UTF-32
          (modèle de classe)  | 
       |
| 
          
           
            
             
              (C++11)
             
            
            
             
              (déprécié en C++17)
             
            
            
             
              (supprimé en C++26)
             
            
           
           
          | 
        
         convertit entre UTF-8 et UCS-2/UCS-4
          (modèle de classe)  | 
       
| 
          
           
            
             
              (C++11)
             
            
            
             
              (déprécié en C++17)
             
            
            
             
              (supprimé en C++26)
             
            
           
           
          | 
        
         convertit entre UTF-16 et UCS-2/UCS-4
          (modèle de classe)  | 
       
| 
          
           
            
             
              (C++11)
             
            
            
             
              (déprécié en C++17)
             
            
            
             
              (supprimé en C++26)
             
            
           
           
          | 
        
         convertit entre UTF-8 et UTF-16
          (modèle de classe)  |