 <p>To represent the character you can use Universal Character Names (UCNs). The character 'ф' has the Unicode value U+0444 and so in C++ you could write it '\u0444' or '\U00000444'. Also if the source code encoding supports this character then you can just write it literally in your source code.</p> <pre><code>// both of these assume that the character can be represented with // a single char in the execution encoding char b = '\u0444'; char a = 'ф'; // this line additionally assumes that the source character encoding supports this character </code></pre> <p>Printing such characters out depends on what you're printing to. If you're printing to a Unix terminal emulator, the terminal emulator is using an encoding that supports this character, and that encoding matches the compiler's execution encoding, then you can do the following:</p> <pre><code>#include &lt;iostream&gt; int main() { std::cout &lt;&lt; "Hello, ф or \u0444!\n"; } </code></pre> <p>This program <em>does not</em> require that 'ф' can be represented in a single char. On OS X and most any modern Linux install this will work just fine, because the source, execution, and console encodings will all be UTF-8 (which supports all Unicode characters).</p> <p>Things are harder with Windows and there are different possibilities with different tradeoffs.</p> <p>Probably the best, if you don't need portable code (you'll be using wchar_t, which should really be avoided on every other platform), is to set the mode of the output file handle to take only UTF-16 data.</p> <pre><code>#include &lt;iostream&gt; #include &lt;io.h&gt; #include &lt;fcntl.h&gt; int main() { _setmode(_fileno(stdout), _O_U16TEXT); std::wcout &lt;&lt; L"Hello, \u0444!\n"; } </code></pre> <p>Portable code is more difficult.</p>