title: How to display L"أَبْجَدِيَّة عَرَبِيَّة‎中文" using wcout?
body: <p>I want to display an Arabic message mixed with Chinese using wcout.</p>
  
  <p>The following code is OK:</p>
  
  <pre><code>#include &lt;iostream&gt;
  
  using namespace std;
  
  int main()
  {
      wcout.imbue(locale("chs"));
      wcout &lt;&lt; L"中文"; // OK
  }
  </code></pre>
  
  <p>However, the following code doesn't work:</p>
  
  <pre><code>#include &lt;iostream&gt;
  
  using namespace std;
  
  int main()
  {
      wcout.imbue(locale(/* What to place here ??? */));
      wcout &lt;&lt; L"أَبْجَدِيَّة عَرَبِيَّة‎中文"; // Output nothing. VC++ 2012 on Win7 x64
      // Why does the main advantage of unicode not apply here?
  }
  </code></pre>
  
  <p>I think the concept of code pages should be deprecated after the adoption of unicode.</p>
  
  <p><strong>Q1. What's the mechanism of wout's displaying such a text?</strong></p>
  
  <p><strong>Q2. Why does Windows, as a unicode-based OS, not support outputting unicode characters in its console window?</strong></p>