<?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[Verloren im Labyrinth der Zeichen-Codes]]></title><description><![CDATA[<p>Hallo liebe Forengemeinde,</p>
<p>ich bin grad total verwirrt über die verschiendenen Zeichencodes:<br />
Ich habe ein Programm geschrieben, dass andere Dateien als Resource in eine .exe packen kann. Das funktioniert so:<br />
Das als Resource genutze Programm wird geöffnet, binär eingelesen in einen char-Array gepackt und dann mit einem einfach int-Cast umgewandelt. Danach soll das int-Array in den eigtl. Quellcode eingefügt werden. Sieht dann so aus:</p>
<pre><code class="language-cpp">char myResource[] = {
     64, 65, 66, 67, /*viele andere Zahlen*/
};
</code></pre>
<p>Nun wird dieses char-Array, wenn die Resource genutzt werden soll, wieder in eine Datei geschrieben und damit wurde die Resource in einer .exe transportiert. Soweit die Theorie. In der Praxis habe ich jetzt Komplikationen mit den Zeichencodes.</p>
<p>Frage:<br />
Welche Kodierung hat die Resource, die ich praktisch binär einlese? Ich habe erstmal auf UTF8 getippt.<br />
Wenn ich nun das gesamte char-Array über ein toUtf8() wieder umwandle in die Datei schreibe, ist die entstandene Datei nur ca. 1% so groß wie die ursprüngliche.<br />
Was genau ist denn jetzt mit diesen Codes: Latin1, UTF8, UTF16, ASCII usw. Was mache ich falsch?</p>
<p>PS: Die int-Werte einiger Zeichen sind sogar negativ oO</p>
<p>Danke für eure Hilfe <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/topic/290546/verloren-im-labyrinth-der-zeichen-codes</link><generator>RSS for Node</generator><lastBuildDate>Tue, 18 Aug 2026 10:16:26 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/290546.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 28 Jul 2011 17:23:43 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Verloren im Labyrinth der Zeichen-Codes on Thu, 28 Jul 2011 17:25:21 GMT]]></title><description><![CDATA[<p>Hallo liebe Forengemeinde,</p>
<p>ich bin grad total verwirrt über die verschiendenen Zeichencodes:<br />
Ich habe ein Programm geschrieben, dass andere Dateien als Resource in eine .exe packen kann. Das funktioniert so:<br />
Das als Resource genutze Programm wird geöffnet, binär eingelesen in einen char-Array gepackt und dann mit einem einfach int-Cast umgewandelt. Danach soll das int-Array in den eigtl. Quellcode eingefügt werden. Sieht dann so aus:</p>
<pre><code class="language-cpp">char myResource[] = {
     64, 65, 66, 67, /*viele andere Zahlen*/
};
</code></pre>
<p>Nun wird dieses char-Array, wenn die Resource genutzt werden soll, wieder in eine Datei geschrieben und damit wurde die Resource in einer .exe transportiert. Soweit die Theorie. In der Praxis habe ich jetzt Komplikationen mit den Zeichencodes.</p>
<p>Frage:<br />
Welche Kodierung hat die Resource, die ich praktisch binär einlese? Ich habe erstmal auf UTF8 getippt.<br />
Wenn ich nun das gesamte char-Array über ein toUtf8() wieder umwandle in die Datei schreibe, ist die entstandene Datei nur ca. 1% so groß wie die ursprüngliche.<br />
Was genau ist denn jetzt mit diesen Codes: Latin1, UTF8, UTF16, ASCII usw. Was mache ich falsch?</p>
<p>PS: Die int-Werte einiger Zeichen sind sogar negativ oO</p>
<p>Danke für eure Hilfe <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2099109</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2099109</guid><dc:creator><![CDATA[*-BootLag-*]]></dc:creator><pubDate>Thu, 28 Jul 2011 17:25:21 GMT</pubDate></item><item><title><![CDATA[Reply to Verloren im Labyrinth der Zeichen-Codes on Thu, 28 Jul 2011 17:31:36 GMT]]></title><description><![CDATA[<p>Haste beim binären Einlesen aich ios::binary angegeben?<br />
Und schreibst mit write, damit Du nicht über eine '\0' stolperst?<br />
Falls ja, klappt Dein Plan so.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2099112</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2099112</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Thu, 28 Jul 2011 17:31:36 GMT</pubDate></item><item><title><![CDATA[Reply to Verloren im Labyrinth der Zeichen-Codes on Thu, 28 Jul 2011 17:39:46 GMT]]></title><description><![CDATA[<p>Zum einlesen nutze ich ne Wrapperfunktion von Qt, die liest ein sog. QByteArray ein, dass ist also binär(biite nicht ins Qt Forum schieben, da dass weniger damit zu tun hat).<br />
Folgendes habe ich grad getestet:<br />
Das Ergebnis einer Testdatei, die eine solche Tabelle enthält sieht so aus:<br />
original:</p>
<pre><code>32
      !   33
      &quot;   34
      #   35
      $   36
      %   37
      &amp;   38
      '   39
      (   40
      )   41
      *   42
usw.
     ¢   162
      £   163
      ¤   164
      ¥   165
      ¦   166
      §   167
      ¨   168
      ©   169
      ª   170
      «   171
      ¬   172
      ­   173
      ®   174
      ¯   175
usw.
</code></pre>
<p>und dann die Resource, nachdem sie wieder ausgespuckt wurde:</p>
<pre><code>32
      !   33
      &quot;   34
      #   35
      $   36
      %   37
      &amp;   38
      '   39
      (   40
      )   41
      *   42
usw.
aber ab ASCII-Code Nummer 128
      �   128
      �   129
      �   130
      �   131
      �   132
      �   133
      �   134
      �   135
      �   136
      �   137
      �   138
      �   139
      �   140
</code></pre>
<p>Das deutet doch auf den UTF8-16 Konflikt hin?! Aber was ist denn nun mit den negativen ASCII-Nummern...Wo sind die drin?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2099117</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2099117</guid><dc:creator><![CDATA[*-BootLag-*]]></dc:creator><pubDate>Thu, 28 Jul 2011 17:39:46 GMT</pubDate></item><item><title><![CDATA[Reply to Verloren im Labyrinth der Zeichen-Codes on Thu, 28 Jul 2011 17:47:41 GMT]]></title><description><![CDATA[<p>Und mit was schreibst Du?<br />
(Es ist natürlich ein Qt-Problem, aber ich schiebe Dich mal nicht weg, sondern warte, Bis Du es selber sagst. <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 />
UTF8 oder so ist nicht angeraten. Einfach binär bleiben und bei char bleiben. Oder unsigned char, damit Dich die negativen Zahlen nicht verwirren.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2099123</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2099123</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Thu, 28 Jul 2011 17:47:41 GMT</pubDate></item><item><title><![CDATA[Reply to Verloren im Labyrinth der Zeichen-Codes on Thu, 28 Jul 2011 17:45:39 GMT]]></title><description><![CDATA[<p>Ok wenn du meinst, dass die Qt Leute mehr Ahnung haben, wäre es nett, wenn du mich verschiebst. Dachte mir nur, dass es ja mit den ganzen Zeichencodes zu tun hat, dass mir jemand aus der normalen C++Ecke helfen könnte^^</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2099124</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2099124</guid><dc:creator><![CDATA[*-BootLag-*]]></dc:creator><pubDate>Thu, 28 Jul 2011 17:45:39 GMT</pubDate></item><item><title><![CDATA[Reply to Verloren im Labyrinth der Zeichen-Codes on Thu, 28 Jul 2011 21:18:10 GMT]]></title><description><![CDATA[<p>OK habs hinbekommen. Local8Bit() ist die richtige Kodierung.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2099219</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2099219</guid><dc:creator><![CDATA[*-BootLag-*]]></dc:creator><pubDate>Thu, 28 Jul 2011 21:18:10 GMT</pubDate></item><item><title><![CDATA[Reply to Verloren im Labyrinth der Zeichen-Codes on Thu, 28 Jul 2011 21:24:23 GMT]]></title><description><![CDATA[<p>Sind Ressourcen nicht eh binär? Ein Bild wird wohl kaum so eine Kodierung haben. Oder gehe ich das jetzt zu sehr von WinAPI Kram aus und Ressourcen sind hier nur Texte?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2099221</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2099221</guid><dc:creator><![CDATA[cooky451]]></dc:creator><pubDate>Thu, 28 Jul 2011 21:24:23 GMT</pubDate></item><item><title><![CDATA[Reply to Verloren im Labyrinth der Zeichen-Codes on Fri, 29 Jul 2011 08:41:47 GMT]]></title><description><![CDATA[<p>Das war ja mein Problem^^ Das wusste ich auch nicht</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2099317</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2099317</guid><dc:creator><![CDATA[*-BootLag-*]]></dc:creator><pubDate>Fri, 29 Jul 2011 08:41:47 GMT</pubDate></item></channel></rss>