<?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[UTF8-konformes programmieren]]></title><description><![CDATA[<p>Hallo miteinander.</p>
<p>Ausgangslage:</p>
<p>Ich will eine art Inputprüfer-Bibliothek schreiben. Diese sollte UTF8-Zeichen(3 Byte müsste ja die größte sein) unterstützen. ein normaler char ist ja 1 Byte groß.<br />
Nun Frage, wie sollte ich meine Bib. aufbauen (unter Linux), damit diese C++ und C kompatibel sein kann und gesammten UTF-8 raum abdeckt?</p>
<p>Da ja C mit &quot;unterstützt&quot; werden soll muss ich einen entsprechenden Datentyp benutzen. Da ich mich etwas schlau gemacht hab,e habe ich etwas von wstring (cpp) und wchar (c) mitbekommen.<br />
Jedoch weiss ich nich ob ich diese von Anfang an benutzen muss oder erst später konvertieren kann.</p>
<p>In wiefern ist eigentlich iconv() von nutzen in diesem bereich? man kann ja dort auch von z.b. ISO-8859-1 auf UTF-8 konvertieren, jedoch dann warsch, da ja char typ zurückgegeben wird nur 8bit. Oder bin ich da etwa auf n holzweg?</p>
<p>Wäre nett wenn mir dazu jemand info geben kann ^^.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/263797/utf8-konformes-programmieren</link><generator>RSS for Node</generator><lastBuildDate>Sat, 05 Sep 2026 12:03:26 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/263797.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 26 Mar 2010 18:34:22 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to UTF8-konformes programmieren on Fri, 26 Mar 2010 18:34:22 GMT]]></title><description><![CDATA[<p>Hallo miteinander.</p>
<p>Ausgangslage:</p>
<p>Ich will eine art Inputprüfer-Bibliothek schreiben. Diese sollte UTF8-Zeichen(3 Byte müsste ja die größte sein) unterstützen. ein normaler char ist ja 1 Byte groß.<br />
Nun Frage, wie sollte ich meine Bib. aufbauen (unter Linux), damit diese C++ und C kompatibel sein kann und gesammten UTF-8 raum abdeckt?</p>
<p>Da ja C mit &quot;unterstützt&quot; werden soll muss ich einen entsprechenden Datentyp benutzen. Da ich mich etwas schlau gemacht hab,e habe ich etwas von wstring (cpp) und wchar (c) mitbekommen.<br />
Jedoch weiss ich nich ob ich diese von Anfang an benutzen muss oder erst später konvertieren kann.</p>
<p>In wiefern ist eigentlich iconv() von nutzen in diesem bereich? man kann ja dort auch von z.b. ISO-8859-1 auf UTF-8 konvertieren, jedoch dann warsch, da ja char typ zurückgegeben wird nur 8bit. Oder bin ich da etwa auf n holzweg?</p>
<p>Wäre nett wenn mir dazu jemand info geben kann ^^.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1874307</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1874307</guid><dc:creator><![CDATA[Gr33b0]]></dc:creator><pubDate>Fri, 26 Mar 2010 18:34:22 GMT</pubDate></item><item><title><![CDATA[Reply to UTF8-konformes programmieren on Sun, 28 Mar 2010 11:29:32 GMT]]></title><description><![CDATA[<p>Leider ist Unicode die reinste Frickelei. Vergiss es besser und such dir was anderes...</p>
<p>Wir sind Opfer von organisierter Faul- und Dummheit.</p>
<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1874460</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1874460</guid><dc:creator><![CDATA[real_Kenner]]></dc:creator><pubDate>Sun, 28 Mar 2010 11:29:32 GMT</pubDate></item><item><title><![CDATA[Reply to UTF8-konformes programmieren on Sun, 28 Mar 2010 11:38:36 GMT]]></title><description><![CDATA[<p>Gr33b0 schrieb:</p>
<blockquote>
<p>Diese sollte UTF8-Zeichen(<strong>3 Byte müsste ja die größte sein</strong>) unterstützen.</p>
</blockquote>
<p>Nö.<br />
<a href="http://de.wikipedia.org/wiki/UTF8" rel="nofollow">http://de.wikipedia.org/wiki/UTF8</a></p>
<ol>
<li>sind es 4 Byte</li>
<li>sind es <strong>bis zu</strong> 4 Byte</li>
</ol>
<p>Das heißt dass ein UTF8-Zeichen variabel in der Länge ist! Und das ist das Problem <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":/"
      alt="😕"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1874466</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1874466</guid><dc:creator><![CDATA[l&#x27;abra d&#x27;or]]></dc:creator><pubDate>Sun, 28 Mar 2010 11:38:36 GMT</pubDate></item><item><title><![CDATA[Reply to UTF8-konformes programmieren on Sun, 28 Mar 2010 13:55:20 GMT]]></title><description><![CDATA[<p><a href="http://utfcpp.sourceforge.net/" rel="nofollow">http://utfcpp.sourceforge.net/</a><br />
<a href="http://www.cl.cam.ac.uk/~mgk25/unicode.html" rel="nofollow">http://www.cl.cam.ac.uk/~mgk25/unicode.html</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1874568</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1874568</guid><dc:creator><![CDATA[rüdiger]]></dc:creator><pubDate>Sun, 28 Mar 2010 13:55:20 GMT</pubDate></item><item><title><![CDATA[Reply to UTF8-konformes programmieren on Sun, 28 Mar 2010 14:54:01 GMT]]></title><description><![CDATA[<p>danke für die nachrichten ^^</p>
<p>hmmm na dolle <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":/"
      alt="😕"
    /> leider wird auf arbeit viel mit utf8 gemacht.</p>
<p>ich werd mir mal das bezüglich sourceforge anschaun.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1874601</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1874601</guid><dc:creator><![CDATA[Gr33b0]]></dc:creator><pubDate>Sun, 28 Mar 2010 14:54:01 GMT</pubDate></item><item><title><![CDATA[Reply to UTF8-konformes programmieren on Sun, 28 Mar 2010 15:47:54 GMT]]></title><description><![CDATA[<p>Vielleicht ist da bei C++0x mit Unicode-string-Literalen was zu holen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1874630</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1874630</guid><dc:creator><![CDATA[wxSkip]]></dc:creator><pubDate>Sun, 28 Mar 2010 15:47:54 GMT</pubDate></item><item><title><![CDATA[Reply to UTF8-konformes programmieren on Sun, 28 Mar 2010 17:38:08 GMT]]></title><description><![CDATA[<p>Gr33b0 schrieb:</p>
<blockquote>
<p>Ich will eine art Inputprüfer-Bibliothek schreiben. Diese sollte UTF8-Zeichen(3 Byte müsste ja die größte sein) unterstützen. ein normaler char ist ja 1 Byte groß.<br />
Nun Frage, wie sollte ich meine Bib. aufbauen (unter Linux), damit diese C++ und C kompatibel sein kann und gesammten UTF-8 raum abdeckt?</p>
</blockquote>
<p>Also wie das in C gehen soll, weiß ich nicht. In C++ solltest Du dafür sorgen, dass der Anwender gar nicht bemerkt, dass da irgendwo UTF8 daher kommt. Ich nehme mal an, dass sich die UTF8-Zeichen in Dateien befinden. Um diese korrekt einzulesen, benötigst Du eine passenden std::basic_streambuf&lt; wchar_t &gt; (bzw. eine Ableitung mit einer passende <a href="http://www.boost.org/doc/libs/1_42_0/libs/serialization/doc/codecvt.html" rel="nofollow">UTF8-Codecvt-Facette</a>).</p>
<p>Der Anwender muss statt char wchar_t nutzen (also z.B. wstring statt string), wenn Du wirklich alle Zeichen benötigst. Theoretisch ginge auch char, aber dann hast Du einen eingeschränkten Funktionsumfang.</p>
<p>Auf keinen Fall sollte der Anwender sich intern mit UTF8 herumschlagen müssen; dann hätte Deine Library versagt!</p>
<p>Gruß<br />
Werner</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1874700</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1874700</guid><dc:creator><![CDATA[Werner Salomon]]></dc:creator><pubDate>Sun, 28 Mar 2010 17:38:08 GMT</pubDate></item><item><title><![CDATA[Reply to UTF8-konformes programmieren on Sun, 28 Mar 2010 18:42:57 GMT]]></title><description><![CDATA[<p>Kann Werner voll zustimmen. Wenn du es etwas ausführlicher brauchst, findest du ab <a href="http://www.kharchi.eu/wiki/doku.php?id=cpp:std:string#internationalisierung" rel="nofollow">hier</a> einen recht umfangreichen Artikel.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1874732</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1874732</guid><dc:creator><![CDATA[Artchi]]></dc:creator><pubDate>Sun, 28 Mar 2010 18:42:57 GMT</pubDate></item><item><title><![CDATA[Reply to UTF8-konformes programmieren on Tue, 30 Mar 2010 16:41:55 GMT]]></title><description><![CDATA[<p>Da das für Arbeit ist, wird es von nem andren programm abgerufen, das über cgi dann daten (Telefonnummer ...) vom client bekommt.<br />
Da die CGI-Programme UTF-8 konform sind, muss die lib auch sein.<br />
(Bin erst rechd neu in der Firma / In dem Bereich tätig)</p>
<p>Was ich auf jeden fall noch weiss is, dass die Buffer in BYTE (Macro auf usigned long soweit ich weiss) gespeicherd werden.</p>
<p>weiss einer wie ich dann evtl noch dann mit wstring/wchar_t regular-expression abfragen machen kann? ich kenne für linux nur gnu regex und prcecpp, aber beides können nur char* handlen (prcecpp kann jedoch auch UTF-8 .... aba wie o_O? ).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1875621</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1875621</guid><dc:creator><![CDATA[Gr33b0]]></dc:creator><pubDate>Tue, 30 Mar 2010 16:41:55 GMT</pubDate></item><item><title><![CDATA[Reply to UTF8-konformes programmieren on Wed, 31 Mar 2010 07:28:08 GMT]]></title><description><![CDATA[<blockquote>
<p>weiss einer wie ich dann evtl noch dann mit wstring/wchar_t regular-expression abfragen machen kann?</p>
</blockquote>
<p>Standard-C++ kann das, schau dir mal regex aus TR1 [1] an. Oder wenn ihr kein TR1 benutzen dürft oder zur Verfügung habt, dann tut es auch boost::regex [2]. Das Tutorial von Boost kann man auch für tr1::regex nutzen.</p>
<p>[1] <a href="http://msdn.microsoft.com/en-us/library/bb982198.aspx" rel="nofollow">http://msdn.microsoft.com/en-us/library/bb982198.aspx</a><br />
[2] <a href="http://www.boost.org/doc/libs/release/libs/regex/" rel="nofollow">www.boost.org/doc/libs/release/libs/regex/</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1875819</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1875819</guid><dc:creator><![CDATA[Artchi]]></dc:creator><pubDate>Wed, 31 Mar 2010 07:28:08 GMT</pubDate></item></channel></rss>