std::codecvt_mode
来自cppreference.com
|
|
This page has been machine-translated from the English version of the wiki using Google Translate.
The translation may contain errors and awkward wording. Hover over text to see the original version. You can help to fix errors and improve the translation. For instructions click here. |
| Defined in header <locale>
|
||
| enum codecvt_mode { consume_header = 4, |
||
方面std::codecvt_utf8,std::codecvt_utf16,std::codecvt_utf8_utf16接受一个可选的值类型std::codecvt_mode作为一个模板参数,它指定的unicode字符串转换的可选功能.
Original:
The facets std::codecvt_utf8, std::codecvt_utf16, and std::codecvt_utf8_utf16 accept an optional value of type std::codecvt_mode as a template argument, which specifies optional features of the unicode string conversion.
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
[编辑] 常量
| Defined in header
<locale> | |
| 值
Original: Value The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. |
Meaning |
little_endian
|
假设输入的是little-endian字节顺序(只适用于UTF-16的输入,默认的是big-endian)
Original: assume the input is in little-endian byte order (applies to UTF-16 input only, the default is big-endian) The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. |
consume_header
|
消耗的字节顺序标记,如果存在的话在开始的输入序列(UTF-16的情况下),依靠它指定的字节顺序解码其余的输入
Original: consume the byte order mark, if present at the start of input sequence, and (in case of UTF-16), rely on the byte order it specifies for decoding the rest of the input The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. |
generate_header
|
输出的输出序列的起始处的字节顺序标记
Original: output the byte order mark at the start of the output sequence The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. |
认可的字节顺序标记
Original:
The recognized byte order marks are:
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
0xfe 0xff
|
UTF-16 big-endian的
Original: UTF-16 big-endian The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. |
0xff 0xfe
|
UTF-16 little-endian的
Original: UTF-16 little-endian The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. |
0xef 0xbb 0xbf
|
UTF-8(排列顺序)没有影响
Original: UTF-8 (no effect on endianness) The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. |
如果std::consume_header没有选择当读取一个文件开头的字节顺序标记,Unicode字符U + FEFF(零宽度不换行空格)将读取的第一个字符的字符串内容.
Original:
If std::consume_header is not selected when reading a file beginning with byte order mark, the Unicode character U+FEFF (Zero width non-breaking space) will be read as the first character of the string content.
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
[编辑] 为例
下面的示例演示使用UTF-8 BOM
Original:
The following example demonstrates consuming the UTF-8 BOM
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
#include <fstream> #include <iostream> #include <string> #include <locale> #include <codecvt> int main() { // UTF-8 data with BOM std::ofstream("text.txt") << u8"\ufeffz\u6c34\U0001d10b"; // read the UTF8 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 << c << '\n'; }
Output:
0x7a 0x6c34 0x1d10b
[编辑] 另请参阅
| 之间进行转换的字符编码,包括UTF-8,UTF-16,UTF-32 Original: converts between character encodings, including UTF-8, UTF-16, UTF-32 The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (类模板) | |
| (C++11) |
之间的转换UTF-8和UCS2/UCS4 Original: converts between UTF-8 and UCS2/UCS4 The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (类模板) |
| (C++11) |
之间的转换UTF-16和UCS2/UCS4 Original: converts between UTF-16 and UCS2/UCS4 The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (类模板) |
| (C++11) |
converts between UTF-8 and UTF-16 (类模板) |