std::codecvt

来自cppreference.com
< cpp‎ | locale

 
 
本地化库
语言环境方面
原文:
Locales and facets
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
locale
字符分类
原文:
Character classification
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
转换
原文:
Conversions
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
wstring_convert(C++11)
wbuffer_convert(C++11)
小面类的基类
原文:
Facet category base classes
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
小面类
原文:
Facet categories
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
特定于语言环境的方面
原文:
Locale-specific facets
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
代码转换方面
原文:
Code conversion facets
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
codecvt_utf8(C++11)
codecvt_utf16(C++11)
codecvt_utf8_utf16(C++11)
codecvt_mode(C++11)
C语言环境
原文:
C locale
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
 
 
在头文件 <locale> 中定义
template<

    class InternT,
    class ExternT,
    class State

> class codecvt;
std::codecvt封装转换的字符串,其中包括广泛和多,从一种编码转换到另一个。所有文件I / O操作通过std::basic_fstream<CharT>使用的语言环境充满流中的std::codecvt<CharT, char, std::mbstate_t>方面.
原文:
Class std::codecvt encapsulates conversion of character strings, including wide and multibyte, from one encoding to another. All file I/O operations performed through std::basic_fstream<CharT> use the std::codecvt<CharT, char, std::mbstate_t> facet of the locale imbued in the stream.
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
cpp/locale/codecvt basecpp/locale/locale/facetstd-codecvt-inheritance.svg
关于这幅图像

Inheritance diagram

四个专业所提供的标准库和所有语言环境中创建的对象在C + +程序实现
原文:
Four specializations are provided by the standard library and are implemented by all locale objects created in a C++ program:
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
在头文件 <locale> 中定义
std::codecvt<char, char, std::mbstate_t>
身份的转换
原文:
identity conversion
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
std::codecvt<char16_t, char, std::mbstate_t>
UTF-16和UTF-8之间的转换(C++11 起)
原文:
conversion between UTF-16 and UTF-8 (C++11 起)
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
std::codecvt<char32_t, char, std::mbstate_t>
UTF-32和UTF-8(C++11 起)之间的转换
原文:
conversion between UTF-32 and UTF-8 (C++11 起)
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
std::codecvt<wchar_t, char, std::mbstate_t>
区域设置特定的宽字符串和狭窄的,可能是多字节字符串之间的转换
原文:
locale-specific conversion between wide string and narrow, possibly multibyte, string
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

目录

[编辑] 会员类型

会员类型
原文:
Member type
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
Definition
intern_type internT
extern_type externT
state_type stateT

[编辑] 会员对象

会员名称
原文:
Member name
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
Type
id (静态的) std::locale::id

[编辑] 成员函数

构造一个新codecvt方面
原文:
constructs a new codecvt facet
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

(公共成员函数)
解构一个codecvt方面
原文:
destructs a codecvt facet
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

(受保护的成员函数)
调用do_out
原文:
invokes do_out
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

(公共成员函数) [edit]
调用do_in
原文:
invokes do_in
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

(公共成员函数) [edit]
调用do_unshift
原文:
invokes do_unshift
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

(公共成员函数) [edit]
调用do_encoding
原文:
invokes do_encoding
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

(公共成员函数) [edit]
调用do_always_noconv
原文:
invokes do_always_noconv
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

(公共成员函数) [edit]
调用do_length
原文:
invokes do_length
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

(公共成员函数) [edit]
调用do_max_length
原文:
invokes do_max_length
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

(公共成员函数) [edit]

[编辑] 受保护的成员函数

[虚]</div></div>
转换成一个字符串,如写入文件时,从Internt的externT
原文:
converts a string from internT to externT, such as when writing to file
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

(虚拟保护成员函数) [edit]
[虚]</div></div>
将字符串转换,如从文件读取时,从externT到Internt的
原文:
converts a string from externT to internT, such as when reading from file
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

(虚拟保护成员函数) [edit]
[虚]</div></div>
产生的externT不完全转化为字符序列终止符
原文:
generates the termination character sequence of externT characters for incomplete conversion
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

(虚拟保护成员函数) [edit]
[虚]</div></div>
返回的externT需要产生一个Internt的字符的字符数,如果不变
原文:
returns the number of externT characters necessary to produce one internT character, if constant
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

(虚拟保护成员函数) [edit]
[虚]</div></div>
该方面的测试,如果所有有效参数值的标识转换为编码
原文:
tests if the facet encodes an identity conversion for all valid argument values
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

(虚拟保护成员函数) [edit]
[虚]</div></div>
计算将转换成给定的Internt的缓冲区消耗的externT字符串,该字符串的长度
原文:
calculates the length of the externT string that would be consumed by conversion into given internT buffer
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

(虚拟保护成员函数) [edit]
[虚]</div></div>
返回的最大数目,可以被转换成一个单一的Internt的字符externT字符
原文:
returns the maximum number of externT characters that could be converted into a single internT character
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

(虚拟保护成员函数) [edit]

Inherited from std::codecvt_base

会员类型
原文:
Member type
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
Definition
enum result { ok, partial, error, noconv };
无作用域的枚举类型
原文:
Unscoped enumeration type
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
枚举常量
原文:
Enumeration constant
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
Definition
ok
转换完成,没有错误
原文:
conversion was completed with no error
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
partial
不是所有的源字符被转换了
原文:
not all source characters were converted
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
error
遇到无效的字符
原文:
encountered an invalid character
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
noconv
没有转换,输入和输出类型是相同的
原文:
no conversion required, input and output types are the same
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

[编辑] 为例

下面的示例读取一个UTF-8文件使用的语言环境,实现了UTF-8转换codecvt <wchar_t, char, mbstate_t>
原文:
The following examples reads a UTF-8 file using a locale which implements UTF-8 conversion in codecvt<wchar_t, char, mbstate_t>
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

#include <iostream>
#include <fstream>
#include <string>
#include <locale>
#include <iomanip>
int main()
{
    // UTF-8 narrow multibyte encoding
    std::ofstream("text.txt") << u8"z\u00df\u6c34\U0001d10b"; // or u8"zß水𝄋"
                                           // or "\x7a\xc3\x9f\xe6\xb0\xb4\xf0\x9d\x84\x8b";
    std::wifstream fin("text.txt");
    fin.imbue(std::locale("en_US.UTF-8")); // this locale's codecvt<wchar_t, char, mbstate_t>
                                           // converts UTF-8 to UCS4
    std::cout << "The UTF-8 file contains the following wide characters: \n";
    for(wchar_t c; fin >> c; )
        std::cout << "U+" << std::hex << std::setw(4) << std::setfill('0') << c << '\n';
}

输出:

The UTF-8 file contains the following wide characters:
U+007a
U+00df
U+6c34
U+1d10b

[编辑] 另请参阅

Character
conversions
narrow multibyte
(char)
UTF-8
(char)
UTF-16
(char16_t)
UTF-16 mbrtoc16 / c16rtomb codecvt<char16_t, char, mbstate_t>
codecvt_utf8_utf16<char16_t>
codecvt_utf8_utf16<char32_t>
codecvt_utf8_utf16<wchar_t>
N/A
UCS2 No codecvt_utf8<char16_t> codecvt_utf16<char16_t>
UTF-32/UCS4
(char32_t)
mbrtoc32 / c32rtomb codecvt<char32_t, char, mbstate_t>
codecvt_utf8<char32_t>
codecvt_utf16<char32_t>
UCS2/UCS4
(wchar_t)
No codecvt_utf8<wchar_t> codecvt_utf16<wchar_t>
wide
(wchar_t)
codecvt<wchar_t, char, mbstate_t>
mbsrtowcs / wcsrtombs
No No
定义字符转换错误
原文:
defines character conversion errors
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

(类模板)
创建名为locale的一个codecvt方面的
原文:
creates a codecvt facet for the named locale
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

(类模板)
(C++11)
之间的转换UTF-8和UCS2/UCS4
原文:
converts between UTF-8 and UCS2/UCS4
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

(类模板) [edit]
(C++11)
之间的转换UTF-16和UCS2/UCS4
原文:
converts between UTF-16 and UCS2/UCS4
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

(类模板) [edit]
converts between UTF-8 and UTF-16
(类模板) [edit]

来自“http://zh.cppreference.com/mwiki/index.php?title=cpp/locale/codecvt&oldid=31193