<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Vom Unicode zum char und zurück]]></title><description><![CDATA[<p>Hi,<br />
bin etwas neu in C++ und wollte mal fragen ob es in C++ einen plattformunabhängigen Befehl gibt von unicode(int) zu char und zurück verwandeln kann.</p>
<p>Weis jemand, wo es eine übersicht aller &quot;Grundbefehle&quot; gibt, finde MSDN da nicht so passend.</p>
<p>mfg<br />
Silencer</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/151836/vom-unicode-zum-char-und-zurück</link><generator>RSS for Node</generator><lastBuildDate>Sun, 06 Sep 2026 16:13:40 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/151836.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 30 Jun 2006 00:08:19 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Vom Unicode zum char und zurück on Fri, 30 Jun 2006 00:08:19 GMT]]></title><description><![CDATA[<p>Hi,<br />
bin etwas neu in C++ und wollte mal fragen ob es in C++ einen plattformunabhängigen Befehl gibt von unicode(int) zu char und zurück verwandeln kann.</p>
<p>Weis jemand, wo es eine übersicht aller &quot;Grundbefehle&quot; gibt, finde MSDN da nicht so passend.</p>
<p>mfg<br />
Silencer</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1088765</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1088765</guid><dc:creator><![CDATA[UltimateSilencer]]></dc:creator><pubDate>Fri, 30 Jun 2006 00:08:19 GMT</pubDate></item><item><title><![CDATA[Reply to Vom Unicode zum char und zurück on Fri, 30 Jun 2006 07:02:39 GMT]]></title><description><![CDATA[<p>UltimateSilencer schrieb:</p>
<blockquote>
<p>Weis jemand, wo es eine übersicht aller &quot;Grundbefehle&quot; gibt, finde MSDN da nicht so passend.</p>
</blockquote>
<p><a href="http://www.cppreference.com/" rel="nofollow">http://www.cppreference.com/</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1088814</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1088814</guid><dc:creator><![CDATA[EEK]]></dc:creator><pubDate>Fri, 30 Jun 2006 07:02:39 GMT</pubDate></item><item><title><![CDATA[Reply to Vom Unicode zum char und zurück on Fri, 30 Jun 2006 12:48:52 GMT]]></title><description><![CDATA[<p>Vielen Dank <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /><br />
Und wie wandelt man einen char in einen int(unicode) um und umgedreht?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1089091</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1089091</guid><dc:creator><![CDATA[TheSilencer]]></dc:creator><pubDate>Fri, 30 Jun 2006 12:48:52 GMT</pubDate></item><item><title><![CDATA[Reply to Vom Unicode zum char und zurück on Fri, 30 Jun 2006 13:39:55 GMT]]></title><description><![CDATA[<p>TheSilencer schrieb:</p>
<blockquote>
<p>Vielen Dank <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /><br />
Und wie wandelt man einen char in einen int(unicode) um und umgedreht?</p>
</blockquote>
<p>meinst du?</p>
<pre><code class="language-cpp">char ch = 'X';
int nch = ch;
char ch2 = nch;
</code></pre>
<p>Grüssli</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1089128</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1089128</guid><dc:creator><![CDATA[Dravere]]></dc:creator><pubDate>Fri, 30 Jun 2006 13:39:55 GMT</pubDate></item><item><title><![CDATA[Reply to Vom Unicode zum char und zurück on Fri, 30 Jun 2006 14:00:25 GMT]]></title><description><![CDATA[<p>Genau das, habe jetzt mal mit anderen Dateitypen rumgespielt.<br />
Warum geht das nicht:<br />
std::string ch = 's'; // soll immer ein Buchstabe sein<br />
int nch = ch;<br />
std::string ch2 = nch;</p>
<p>(sry bin php gewohnt das sieht man das nicht so eng)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1089143</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1089143</guid><dc:creator><![CDATA[TheSilencer]]></dc:creator><pubDate>Fri, 30 Jun 2006 14:00:25 GMT</pubDate></item><item><title><![CDATA[Reply to Vom Unicode zum char und zurück on Fri, 30 Jun 2006 14:08:17 GMT]]></title><description><![CDATA[<p>Tach,</p>
<p>Soweit ich weiß ist Unicode nicht int sondern unsigned short (16 Bit breit)!</p>
<pre><code>typedef unsigned short wchar_t;
</code></pre>
<p>So jetzt zu deiner Frage:<br />
Wenn du zwischen Unicode und dem &quot;normalen&quot; Zeichensatz umwandeln willst, dann musst du wissen, dass ...</p>
<p>1.) Die ersten 128 Zeichen von Unicode (Codes 0x0000 bis 0x007F) direkt dem bekannten ASCII entsprechen<br />
2.) Die nächsten 128 Zeichen (0x0080 bis 0x00FF) dem durch ISO 8859-1 festgelegten ASCII-Erweiterungen entsprechen</p>
<p>Wenn du also von ASCII zu Unicode willst und es nicht unnötig kompliziert machen willst:</p>
<pre><code>char ascii = 'a';
wchar_t unicode = (wchar_t) ascii;

oder:

#define UNICODE // vor windows.h !!!

char ascii = 'b';
TCHAR unicode = (TCHAR) ascii;
</code></pre>
<p>In die andere Richtung macht es meiner Meinung nach absolut keinen Sinn, da char eben nur 8 Bit breit ist und wchar_t 16 Bit breit ist.<br />
Wenn du also eine Unicode zeichen, das überhalb der ersten 256 Zeichen liegt in ASCII umwandelst kommt da nur Zeichensalat raus!<br />
Und außerdem wäre das Unicode Zeichen nicht mehr wiederherstellbar (die letzten 8 Bit gehen beim Casten verloren).</p>
<p>Wenn du aber beispielsweise n Unicode-String übers Internet verschicken willst und du Sockets verwenden willst (die soweit ich weiß nicht UNICODE-FÄHIG sind), dann würde ich dir empfehlen einfach einen doppelt so großen char-String zu nehmen und ne Funktion zu schreiben, die n Unicode-Zeichen in 2 mal 8 Bit aufspaltet und dann je ein Byte in ein char abspeichert.<br />
Das gibt zwar auch Zeichensalat, aber der String ist wiederherstellbar.</p>
<p>-&gt; Ich seh grad, dass es schon ein Makro dafür gibt: LOBYTE und HIBYTE (ich dachte immer die Dinger gibts nur für Double-Words, tja ... man lernt immer dazu <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";-)"
      alt="😉"
    /> )</p>
<p>Gruß TheImaginator</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1089148</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1089148</guid><dc:creator><![CDATA[TheImaginator]]></dc:creator><pubDate>Fri, 30 Jun 2006 14:08:17 GMT</pubDate></item><item><title><![CDATA[Reply to Vom Unicode zum char und zurück on Fri, 30 Jun 2006 16:00:11 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>Umwandlung von wstring/string bzw wchar*/char* siehe <a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-150324-and-highlight-is-%2Anarrow%2A.html" rel="nofollow">hier</a>.</p>
<p>Umwandlung string/char in int/float, siehe <a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-115176-and-highlight-is-%2Alexicalcast%2A.html" rel="nofollow">hier</a>.</p>
<p>bis balöd<br />
akari</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1089185</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1089185</guid><dc:creator><![CDATA[akari]]></dc:creator><pubDate>Fri, 30 Jun 2006 16:00:11 GMT</pubDate></item><item><title><![CDATA[Reply to Vom Unicode zum char und zurück on Fri, 30 Jun 2006 19:01:42 GMT]]></title><description><![CDATA[<p>TheImaginator schrieb:</p>
<blockquote>
<p>Soweit ich weiß ist Unicode nicht int sondern unsigned short (16 Bit breit)!</p>
<pre><code>typedef unsigned short wchar_t;
</code></pre>
<p>[...]<br />
In die andere Richtung macht es meiner Meinung nach absolut keinen Sinn, da char eben nur 8 Bit breit ist und wchar_t 16 Bit breit ist.</p>
</blockquote>
<p>Keine Ahnung woher du das hast, aber das ist Käse. Wahrscheinlich liest du zuviel MSDN. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /><br />
wchar_t ist ein &quot;echter&quot; C++ Datentyp. Und wie der aussieht, ist implementationsspezifisch. Unter Windows zB ist der typischerweise 16 Bit breit, was einfach daran liegt, dass WinAPI UTF-16 unterstützt.<br />
Ich weiss zwar nicht genau, was das konkrete Problem des OP ist. Aber für die Umwandlung von und in wchar_t Zeichen gibt es zB die Funktionen wctomb und mbtowc.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1089262</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1089262</guid><dc:creator><![CDATA[groovemaster]]></dc:creator><pubDate>Fri, 30 Jun 2006 19:01:42 GMT</pubDate></item></channel></rss>