std::wstring_convert::from_bytes

来自cppreference.com

定义于头文件 <locale>
wide_string from_bytes( char byte );
(1)
wide_string from_bytes( const char* ptr );
(2)
wide_string from_bytes( const byte_string& str );
(3)
wide_string from_bytes( const char* first, const char* last);
(4)
执行多字节广角转换的,用在建设提供的的codecvt方面.
原文:
Performs multibyte to wide conversion, using the codecvt facet supplied at construction.
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。
1)
byte转换,如果它是一个字符串的长度1wide_string
原文:
Converts byte as if it was a string of length 1 to wide_string
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。
2)
将null结尾的多字节字符的字符序列开始,指向ptr到wide_string
原文:
Converts the null-terminated multibyte character sequence beginning at the character pointed to by ptr to wide_string
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。
3)
转换的窄字符串str到wide_string的.
原文:
Converts the narrow string str to wide_string.
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。
4)
将狭窄的多字节字符序列[first, last)的wide_string
原文:
Converts the narrow multibyte character sequence [first, last) to wide_string
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。
在任何情况下,在开始转换在初始移位状态,,除非非初始状态提供了这wstring_convert构造。转换的字符数和最终值的转换状态都记住了,可访问state()converted()
原文:
In all cases, the conversion begins in initial shift state, unless non-initial starting state was provided to this wstring_convert constructor. The number of characters converted and the final value of the conversion state are remembered and can be accessed with state() and converted()
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。

目录

[编辑] 返回值

一个wide_string对象,其中包含多字节广角转换的结果。如果转换失败,为用户提供广泛的错误,这wstring_convert的构造函数提供的字符串,返回该宽的错误字符串.
原文:
A wide_string object containing the results of multibyte to wide conversion. If the conversion failed and there was a user-supplied wide-error string provided to the constructor of this wstring_convert, returns that wide-error string.
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。

[编辑] 例外

如果没有用户提供广泛的错误字符串,这wstring_convert对象,构建抛出std::range_error转换失败.
原文:
If this wstring_convert object was constructed without a user-supplied wide-error string, throws std::range_error on conversion failure.
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。

[编辑] 示例

#include <iostream>
#include <string>
#include <locale>
#include <codecvt>
int main()
{
    std::string utf8 =  u8"z\u00df\u6c34\U0001d10b"; // or u8"zß水𝄋"
                        // or "\x7a\xc3\x9f\xe6\xb0\xb4\xf0\x9d\x84\x8b";
 
    // the UTF-8 / UTF-16 standard conversion facet
    std::wstring_convert<std::codecvt_utf8_utf16<char16_t>, char16_t> utf16conv;
    std::u16string utf16 = utf16conv.from_bytes(utf8.data());
    std::cout << "UTF16 conversion produced " << utf16.size() << " code points:\n";
    for(char16_t c : utf16)
        std::cout << std::hex << std::showbase << c << '\n';
 
    // the UTF-8 / UTF-32 standard conversion facet
    std::wstring_convert<std::codecvt_utf8<char32_t>, char32_t> utf32conv;
    std::u32string utf32 = utf32conv.from_bytes(utf8);
    std::cout << "UTF32 conversion produced " << std::dec << utf32.size() << " code points:\n";
    for(char32_t c : utf32)
        std::cout << std::hex << std::showbase << c << '\n';
}

输出:

UTF16 conversion produced 5 code points:
0x7a
0xdf
0x6c34
0xd834
0xdd0b
UTF32 conversion produced 4 code points:
0x7a
0xdf
0x6c34
0x1d10b

[编辑] 另请参阅

宽字符串转换成一个字节的字符串
原文:
converts a wide string into a byte string
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。

(公开成员函数) [编辑]
在给定的状态下,将多字节字符串转换为宽字符串
原文:
converts a narrow multibyte character string to wide string, given state
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。

(函数) [编辑]
[虚]
将字符串转换,如从文件读取时,从externT到Internt的
原文:
converts a string from externT to internT, such as when reading from file
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。

(std::codecvt 的虚受保护成员函数) [编辑]