Files
hustoj/web/cppreference-zh/chmhelp/cpp-locale-wstring_convert.html
2025-08-01 12:57:54 +08:00

229 lines
13 KiB
HTML

<!DOCTYPE html>
<html lang="zh" dir="ltr" class="client-nojs" xmlns="http://www.w3.org/1999/xhtml" xml:lang="zh">
<head><meta http-equiv="x-ua-compatible" content="ie=edge">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>std::wstring_convert</title>
<link rel="stylesheet" href="ext.css" />
<link rel="stylesheet" href="site_modules.css" />
</head>
<body class="mediawiki ltr sitedir-ltr ns-0 ns-subject page-cpp_locale_wstring_convert skin-cppreference2 action-view cpp-navbar">
<div id="cpp-content-base">
<div id="content"><a id="top"></a>
<h1 id="firstHeading" class="firstHeading"><span style="font-size:0.7em; line-height:130%">std::</span>wstring_convert</h1>
<div id="bodyContent">
<div id="contentSub"><span class="subpages">&lt; <a href="cpp.html">cpp</a>&lrm; | <a href="cpp-locale.html">locale</a></span></div>
<div id="mw-content-text" lang="zh" dir="ltr" class="mw-content-ltr" xml:lang="zh">
<table class="t-dcl-begin">
<tbody>
<tr class="t-dsc-header">
<td>
<div>&#23450;&#20041;&#20110;&#22836;&#25991;&#20214; <code><a href="cpp-header-locale.html">&lt;locale&gt;</a></code></div>
</td>
<td></td>
<td></td>
</tr>
<tr class="t-dcl t-since-cxx11">
<td>
<div><span class="mw-geshi cpp source-cpp"><span class="kw1">template</span><span class="sy1">&lt;</span> <span class="kw1">class</span> Codecvt,<br /></span>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">class</span> Elem <span class="sy1">=</span> <span class="kw4">wchar_t</span>,<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">class</span> Wide_alloc <span class="sy1">=</span> <a href="cpp-memory-allocator.html"><span class="kw700">std::<span class="me2">allocator</span></span></a><span class="sy1">&lt;</span>Elem<span class="sy1">&gt;</span>,<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">class</span> Byte_alloc <span class="sy1">=</span> <a href="cpp-memory-allocator.html"><span class="kw700">std::<span class="me2">allocator</span></span></a><span class="sy1">&lt;</span><span class="kw4">char</span><span class="sy1">&gt;</span> <span class="sy1">&gt;</span><br /></p>
<span class="kw1">class</span> wstring_convert<span class="sy4">;</span></div>
</td>
<td class="t-dcl-nopad"></td>
<td><span class="t-mark-rev t-since-cxx11">(C++11 &#36215;)</span><br />
<span class="t-mark">(C++17 &#20013;&#24323;&#29992;)</span></td>
</tr>
<tr class="t-dcl-sep">
<td></td>
<td></td>
<td></td>
</tr>
</tbody>
</table>
<p>&#31867;&#27169;&#26495; <code>std::wstring_convert</code> &#29992;&#21333;&#29420;&#30340;&#32534;&#30721;&#36716;&#25442;&#24179;&#38754; <code>Codecvt</code> &#65292;&#36827;&#34892;&#23383;&#33410;&#23383;&#31526;&#20018; <span class="t-lc"><a href="cpp-string-basic_string.html">std::string</a></span> &#21644;&#23485;&#23383;&#31526;&#20018; <span class="t-c"><span class="mw-geshi cpp source-cpp"><a href="cpp-string-basic_string.html"><span class="kw1228">std::<span class="me2">basic_string</span></span></a><span class="sy1">&lt;</span>Elem<span class="sy1">&gt;</span></span></span> &#38388;&#30340;&#36716;&#25442;&#12290; <code>std::wstring_convert</code> &#20551;&#23450;&#25317;&#26377;&#36716;&#25442;&#24179;&#38754;&#30340;&#25152;&#26377;&#26435;&#65292;&#32780;&#19981;&#33021;&#20351;&#29992; locale &#25152;&#31649;&#29702;&#30340;&#24179;&#38754;&#12290;&#36866;&#29992;&#20110; <code>std::wstring_convert</code> &#30340;&#26631;&#20934;&#24179;&#38754;&#23545;&#20110; UTF-8/UCS2 &#21644; UTF-8/UCS4 &#36716;&#25442;&#26159; <span class="t-lc"><a href="cpp-locale-codecvt_utf8.html">std::codecvt_utf8</a></span> &#65292;&#32780;&#23545;&#20110; UTF-8/UTF-16 &#36716;&#25442;&#26159; <span class="t-lc"><a href="cpp-locale-codecvt_utf8_utf16.html">std::codecvt_utf8_utf16</a></span> &#12290;</p>
<h3><span class="mw-headline" id=".E6.88.90.E5.91.98.E7.B1.BB.E5.9E.8B">&#25104;&#21592;&#31867;&#22411;</span></h3>
<table class="t-dsc-begin">
<tr class="t-dsc-hitem">
<td>&#25104;&#21592;&#31867;&#22411;</td>
<td>&#23450;&#20041;</td>
</tr>
<tr class="t-dsc">
<td><code>byte_string</code></td>
<td><code>std::basic_string&lt;char, char_traits&lt;char&gt;, Byte_alloc&gt;</code></td>
</tr>
<tr class="t-dsc">
<td><code>wide_string</code></td>
<td><code>std::basic_string&lt;Elem, char_traits&lt;Elem&gt;, Wide_alloc&gt;</code></td>
</tr>
<tr class="t-dsc">
<td><code>state_type</code></td>
<td><code>Codecvt::state_type</code></td>
</tr>
<tr class="t-dsc">
<td><code>int_type</code></td>
<td><code>wide_string::traits_type::int_type</code></td>
</tr>
</table>
<h3><span class="mw-headline" id=".E6.88.90.E5.91.98.E5.87.BD.E6.95.B0">&#25104;&#21592;&#20989;&#25968;</span></h3>
<table class="t-dsc-begin">
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div t-dsc-member-nobold-div">
<div><a href="cpp-locale-wstring_convert-wstring_convert.html"><span class="t-lines"><span>(&#26500;&#36896;&#20989;&#25968;)</span></span></a></div>
</div>
</td>
<td>&#26500;&#36896;&#26032;&#30340; wstring_convert<br />
<span class="t-mark">(&#20844;&#24320;&#25104;&#21592;&#20989;&#25968;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><span class="t-lines"><span>operator=</span></span></div>
</div>
</td>
<td>&#22797;&#21046;&#36171;&#20540;&#36816;&#31639;&#31526;&#34987;&#21024;&#38500;<br />
<span class="t-mark">(&#20844;&#24320;&#25104;&#21592;&#20989;&#25968;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div t-dsc-member-nobold-div">
<div><a href="cpp-locale-wstring_convert-~wstring_convert.html"><span class="t-lines"><span>(&#26512;&#26500;&#20989;&#25968;)</span></span></a></div>
</div>
</td>
<td>&#26512;&#26500; wstring_convert &#21450;&#20854;&#36716;&#25442;&#24179;&#38754;<br />
<span class="t-mark">(&#20844;&#24320;&#25104;&#21592;&#20989;&#25968;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-locale-wstring_convert-from_bytes.html"><span class="t-lines"><span>from_bytes</span></span></a></div>
</div>
</td>
<td>&#36716;&#25442;&#23383;&#33410;&#23383;&#31526;&#20018;&#20026;&#23485;&#23383;&#31526;&#20018;<br />
<span class="t-mark">(&#20844;&#24320;&#25104;&#21592;&#20989;&#25968;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-locale-wstring_convert-to_bytes.html"><span class="t-lines"><span>to_bytes</span></span></a></div>
</div>
</td>
<td>&#36716;&#25442;&#23485;&#23383;&#31526;&#20018;&#20026;&#23383;&#31526;&#20018;<br />
<span class="t-mark">(&#20844;&#24320;&#25104;&#21592;&#20989;&#25968;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-locale-wstring_convert-converted.html"><span class="t-lines"><span>converted</span></span></a></div>
</div>
</td>
<td>&#36820;&#22238;&#25104;&#21151;&#36716;&#25442;&#30340;&#23383;&#31526;&#25968;<br />
<span class="t-mark">(&#20844;&#24320;&#25104;&#21592;&#20989;&#25968;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-locale-wstring_convert-state.html"><span class="t-lines"><span>state</span></span></a></div>
</div>
</td>
<td>&#36820;&#22238;&#24403;&#21069;&#36716;&#25442;&#29366;&#24577;<br />
<span class="t-mark">(&#20844;&#24320;&#25104;&#21592;&#20989;&#25968;)</span></td>
</tr>
</table>
<h3><span class="mw-headline" id=".E5.8F.82.E9.98.85">&#21442;&#38405;</span></h3>
<table class="wikitable" style="font-size:85%; text-align:center;">
<tr>
<th>&#23383;&#31526;&#36716;&#25442;</th>
<th>&#26412;&#22320;&#29615;&#22659;&#23450;&#20041;&#22810;&#23383;&#33410;<br />
(UTF-8, GB18030)</th>
<th>UTF-8<br /></th>
<th>UTF-16<br /></th>
</tr>
<tr>
<th>UTF-16</th>
<td style="background: #90ff90; color: black; vertical-align: middle; text-align: center;" class="table-yes"><a href="cpp-string-multibyte-mbrtoc16.html"><tt>mbrtoc16</tt></a> / <a href="cpp-string-multibyte-c16rtomb.html"><tt>c16rtomb</tt></a><span class="t-mark">(&#26377; C11 &#30340; DR488)</span></td>
<td style="background: #90ff90; color: black; vertical-align: middle; text-align: center;" class="table-yes"><a href="cpp-locale-codecvt.html"><tt>codecvt</tt></a>&lt;char16_t, char, mbstate_t&gt;<br />
<a href="cpp-locale-codecvt_utf8_utf16.html"><tt>codecvt_utf8_utf16</tt></a>&lt;char16_t&gt;<br />
<a href="cpp-locale-codecvt_utf8_utf16.html"><tt>codecvt_utf8_utf16</tt></a>&lt;char32_t&gt;<br />
<a href="cpp-locale-codecvt_utf8_utf16.html"><tt>codecvt_utf8_utf16</tt></a>&lt;wchar_t&gt;</td>
<td style="background: #ececec; color: grey; vertical-align: middle; text-align: center;" class="table-na"><small>N/A</small></td>
</tr>
<tr>
<th>UCS2</th>
<td style="background: #90ff90; color: black; vertical-align: middle; text-align: center;" class="table-yes"><a href="cpp-string-multibyte-c16rtomb.html"><tt>c16rtomb</tt></a><span class="t-mark">(&#26080; C11 &#30340; DR488)</span></td>
<td style="background: #90ff90; color: black; vertical-align: middle; text-align: center;" class="table-yes"><a href="cpp-locale-codecvt_utf8.html"><tt>codecvt_utf8</tt></a>&lt;char16_t&gt;<br />
<p><a href="cpp-locale-codecvt_utf8.html"><tt>codecvt_utf8</tt></a>&lt;wchar_t&gt;<span class="t-mark">(Windows)</span></p>
</td>
<td style="background: #90ff90; color: black; vertical-align: middle; text-align: center;" class="table-yes"><a href="cpp-locale-codecvt_utf16.html"><tt>codecvt_utf16</tt></a>&lt;char16_t&gt;<br />
<p><a href="cpp-locale-codecvt_utf16.html"><tt>codecvt_utf16</tt></a>&lt;wchar_t&gt;<span class="t-mark">(Windows)</span></p>
</td>
</tr>
<tr>
<th>UTF-32</th>
<td style="background: #90ff90; color: black; vertical-align: middle; text-align: center;" class="table-yes">
<p><a href="cpp-string-multibyte-mbrtoc32.html"><tt>mbrtoc32</tt></a> / <a href="cpp-string-multibyte-c32rtomb.html"><tt>c32rtomb</tt></a></p>
</td>
<td style="background: #90ff90; color: black; vertical-align: middle; text-align: center;" class="table-yes">
<p><a href="cpp-locale-codecvt.html"><tt>codecvt</tt></a>&lt;char32_t, char, mbstate_t&gt;<br />
<a href="cpp-locale-codecvt_utf8.html"><tt>codecvt_utf8</tt></a>&lt;char32_t&gt;<br />
<a href="cpp-locale-codecvt_utf8.html"><tt>codecvt_utf8</tt></a>&lt;wchar_t&gt;<span class="t-mark">(&#38750; Windows)</span></p>
</td>
<td style="background: #90ff90; color: black; vertical-align: middle; text-align: center;" class="table-yes">
<p><a href="cpp-locale-codecvt_utf16.html"><tt>codecvt_utf16</tt></a>&lt;char32_t&gt;<br />
<a href="cpp-locale-codecvt_utf16.html"><tt>codecvt_utf16</tt></a>&lt;wchar_t&gt;<span class="t-mark">(&#38750; Windows)</span></p>
</td>
</tr>
<tr>
<th>&#31995;&#32479;&#23485;<br />
UTF-32<span class="t-mark">(&#38750; Windows)</span><br />
UCS2<span class="t-mark">(Windows)</span></th>
<td style="background: #90ff90; color: black; vertical-align: middle; text-align: center;" class="table-yes">
<p><a href="cpp-string-multibyte-mbsrtowcs.html"><tt>mbsrtowcs</tt></a> / <a href="cpp-string-multibyte-wcsrtombs.html"><tt>wcsrtombs</tt></a><br />
<a href="cpp-locale-use_facet.html"><tt>use_facet</tt></a>&lt;<a href="cpp-locale-codecvt.html"><tt>codecvt</tt></a><br />
&lt;wchar_t, char, mbstate_t&gt;&gt;(<a href="cpp-locale-locale.html"><tt>locale</tt></a>)</p>
</td>
<td style="background:#ff9090; color:black; vertical-align: middle; text-align: center;" class="table-no">&#26080;</td>
<td style="background:#ff9090; color:black; vertical-align: middle; text-align: center;" class="table-no">&#26080;</td>
</tr>
</table>
<table class="t-dsc-begin">
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-locale-wbuffer_convert.html"><span class="t-lines"><span>wbuffer_convert</span></span></a></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx11">(C++11)</span></span><span><span class="t-mark">(C++17 &#20013;&#24323;&#29992;)</span></span></span></div>
</div>
</td>
<td>&#36827;&#34892;&#23383;&#33410;&#27969;&#32531;&#20914;&#21306;&#21644;&#23485;&#27969;&#32531;&#20914;&#21306;&#38388;&#30340;&#36716;&#25442;<br />
<span class="t-mark">(&#31867;&#27169;&#26495;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-locale-codecvt_utf8.html"><span class="t-lines"><span>codecvt_utf8</span></span></a></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx11">(C++11)</span><span class="t-mark-rev t-deprecated-cxx17">(C++17 &#20013;&#24323;&#29992;)</span></span></span></div>
</div>
</td>
<td>&#22312; UTF-8 &#19982; UCS2/UCS4 &#38388;&#36716;&#25442;<br />
<span class="t-mark">(&#31867;&#27169;&#26495;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-locale-codecvt_utf8_utf16.html"><span class="t-lines"><span>codecvt_utf8_utf16</span></span></a></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx11">(C++11)</span><span class="t-mark-rev t-deprecated-cxx17">(C++17 &#20013;&#24323;&#29992;)</span></span></span></div>
</div>
</td>
<td>&#22312; UTF-8 &#19982; UTF-16 &#38388;&#36716;&#25442;<br />
<span class="t-mark">(&#31867;&#27169;&#26495;)</span></td>
</tr>
</table>
</div>
<div class="visualClear"></div>
</div>
</div>
</div>
</body>
</html>