<div dir="auto">Also keep in mind that without a locale using a multibyte charset, i.e. not the default &quot;C&quot; locale, conversion will be silently lossy. </div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Fri, May 3, 2019, 11:26 Tom Honermann &lt;<a href="mailto:tom@honermann.net" target="_blank" rel="noreferrer">tom@honermann.net</a>&gt; wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
  
    
  
  <div bgcolor="#FFFFFF" text="#000000">
    <div class="m_1543556410975187681m_2238683992514537845moz-cite-prefix">On 5/3/19 7:12 AM, Lyberta wrote:<br>
    </div>
    <blockquote type="cite">
      <pre class="m_1543556410975187681m_2238683992514537845moz-quote-pre">So GCC 9 has been released and I&#39;m starting migration to char8_t. The
first question is how to print std::u8string? Since std::cout works in
execution character set I need a way to convert string from UTF-8 to ECS.</pre>
    </blockquote>
    I wish I had a better suggestion for you then std::c8rtomb. 
    JeanHeyd is working on a proposal for modern transcoding interfaces.<br>
    <blockquote type="cite">
      <pre class="m_1543556410975187681m_2238683992514537845moz-quote-pre">

It looks like the only way is to use std::c8rtomb but the API is very
cryptic and I don&#39;t understand it. Can someone provide an example code?</pre>
    </blockquote>
    <p>As far as I know, no one has actually implemented std::c8rtomb
      yet.  It has been on my todo list for a long time to contribute an
      implementation to glibc, but I haven&#39;t found the time yet.</p>
    <p>c8rtomb is intended to match the existing c16rtomb and c32rtomb
      functions, so inherits design and wording from them.  The wording
      in the C++ standard for c8rtomb is a lightly edited copy of the C
      standard&#39;s wording for c16rtomb.  That wording is, well, it could
      be improved.  A lot.  I intentionally chose to keep it aligned
      with the C standard so as not to cause confusion for implementors
      (presumably, they have already come to an understanding with C&#39;s
      wording).</p>
    <p>I suggest looking at the examples for c16rtomb on
      <a href="http://cppreference.com" rel="noreferrer noreferrer" target="_blank">cppreference.com</a>.<br>
      - <a class="m_1543556410975187681m_2238683992514537845moz-txt-link-freetext" href="https://en.cppreference.com/w/cpp/string/multibyte/c16rtomb" rel="noreferrer noreferrer" target="_blank">https://en.cppreference.com/w/cpp/string/multibyte/c16rtomb</a><br>
    </p>
    <p>Tom.<br>
    </p>
    <blockquote type="cite">
      <pre class="m_1543556410975187681m_2238683992514537845moz-quote-pre">

</pre>
      <br>
      <fieldset class="m_1543556410975187681m_2238683992514537845mimeAttachmentHeader"></fieldset>
      <pre class="m_1543556410975187681m_2238683992514537845moz-quote-pre">_______________________________________________
SG16 Unicode mailing list
<a class="m_1543556410975187681m_2238683992514537845moz-txt-link-abbreviated" href="mailto:Unicode@isocpp.open-std.org" rel="noreferrer noreferrer" target="_blank">Unicode@isocpp.open-std.org</a>
<a class="m_1543556410975187681m_2238683992514537845moz-txt-link-freetext" href="http://www.open-std.org/mailman/listinfo/unicode" rel="noreferrer noreferrer" target="_blank">http://www.open-std.org/mailman/listinfo/unicode</a>
</pre>
    </blockquote>
    <p><br>
    </p>
  </div>

_______________________________________________<br>
SG16 Unicode mailing list<br>
<a href="mailto:Unicode@isocpp.open-std.org" rel="noreferrer noreferrer" target="_blank">Unicode@isocpp.open-std.org</a><br>
<a href="http://www.open-std.org/mailman/listinfo/unicode" rel="noreferrer noreferrer noreferrer" target="_blank">http://www.open-std.org/mailman/listinfo/unicode</a><br>
</blockquote></div>