<?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[wcslwr und Umlaute]]></title><description><![CDATA[<p>Hi,</p>
<p>ich hab mal wieder ein Problem bei dem ich nicht weiter weiss.<br />
Ich würde gern einen wchar_t string mit wcslwr in lowercase umwandeln.<br />
Dazu hab ich mal folgenden codeschnipsel (man verzeihe mir die Ausgabe per winapi <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>
<pre><code class="language-cpp">wchar_t stringTest[] = L&quot;aouAOUäöüÄÖÜß&quot;;
wchar_t* stringTest2 = wcslwr(stringTest);
MessageBox(0, stringTest2, 0, MB_OK);
</code></pre>
<p>Nun sollte man ja erwarten, dass eine MessageBox mit tem Text &quot;aouaouäöüäöüß&quot; aufpoppt. Leider ist das nicht der Fall. Statdessen erscheint &quot;aouaouäöüÄÖÜß&quot;. Wenn ich vorher mit setlocale(LC_ALL, &quot;De_DE&quot;) bzw. _wsetlocale(LC_ALL, L&quot;De_DE&quot;) die codepage auf Deutsch umstelle ändert sich das Ergebniss leider auch nicht.<br />
_UNICODE und UNICODE sind definiert.</p>
<p>Gibt es eine Methode wie ich das, am besten für alle Sprachen auf einmal, zum funktioneiren bringe?</p>
<p>Wenn ich jeden Benutzer vorher seine Sprache einstellen lassen müsste währe das zwar unschön aber immerhin schonmal ein Schritt in die richtige Richtung.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/155609/wcslwr-und-umlaute</link><generator>RSS for Node</generator><lastBuildDate>Tue, 08 Sep 2026 12:55:00 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/155609.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 07 Aug 2006 21:36:20 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to wcslwr und Umlaute on Mon, 07 Aug 2006 21:37:48 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>ich hab mal wieder ein Problem bei dem ich nicht weiter weiss.<br />
Ich würde gern einen wchar_t string mit wcslwr in lowercase umwandeln.<br />
Dazu hab ich mal folgenden codeschnipsel (man verzeihe mir die Ausgabe per winapi <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>
<pre><code class="language-cpp">wchar_t stringTest[] = L&quot;aouAOUäöüÄÖÜß&quot;;
wchar_t* stringTest2 = wcslwr(stringTest);
MessageBox(0, stringTest2, 0, MB_OK);
</code></pre>
<p>Nun sollte man ja erwarten, dass eine MessageBox mit tem Text &quot;aouaouäöüäöüß&quot; aufpoppt. Leider ist das nicht der Fall. Statdessen erscheint &quot;aouaouäöüÄÖÜß&quot;. Wenn ich vorher mit setlocale(LC_ALL, &quot;De_DE&quot;) bzw. _wsetlocale(LC_ALL, L&quot;De_DE&quot;) die codepage auf Deutsch umstelle ändert sich das Ergebniss leider auch nicht.<br />
_UNICODE und UNICODE sind definiert.</p>
<p>Gibt es eine Methode wie ich das, am besten für alle Sprachen auf einmal, zum funktioneiren bringe?</p>
<p>Wenn ich jeden Benutzer vorher seine Sprache einstellen lassen müsste währe das zwar unschön aber immerhin schonmal ein Schritt in die richtige Richtung.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1112597</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1112597</guid><dc:creator><![CDATA[Matroc]]></dc:creator><pubDate>Mon, 07 Aug 2006 21:37:48 GMT</pubDate></item><item><title><![CDATA[Reply to wcslwr und Umlaute on Tue, 08 Aug 2006 07:31:15 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">#include &lt;windows.h&gt;
#include &lt;locale&gt; 

int main()
{
#if UNICODE    

    wchar_t a[] =  L&quot;aouAOUäöüÄÖÜß&quot;; 
    wchar_t b[sizeof a];

    std::locale loc (&quot;German_Germany&quot;);

    for (size_t i = sizeof a; i; --i)
       b[(i-1)] = tolower(a[i-1], loc);

    MessageBoxW(0, b, L&quot;UNICODE&quot;, MB_OK);  
#endif
    char c[(sizeof a)/2+1]; 
    WideCharToMultiByte( CP_ACP, 0, b, -1,
        c, sizeof b, NULL, NULL );
    MessageBoxA(0, c, &quot;ASCII&quot;, MB_OK);
}
</code></pre>
<p>Hab das mal mit VS2005 VC++ 8.0 und std::locale loc (&quot;German_Germany&quot;) zum Laufen gebracht.<br />
Es gibt bestimmt bessere Lösungen. Andere Compiler kommen z.B. mit diesem Code nicht zurecht.<br />
Es gibt auch Schriftarten , die diese Sonderzeichein überhaupt nicht bzw. anders anzeigen!<br />
Wcslwr() -&gt; <a href="http://support.microsoft.com/kb/304497/DE/" rel="nofollow">http://support.microsoft.com/kb/304497/DE/</a></p>
<p>mfg</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1112731</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1112731</guid><dc:creator><![CDATA[Helmut S.]]></dc:creator><pubDate>Tue, 08 Aug 2006 07:31:15 GMT</pubDate></item><item><title><![CDATA[Reply to wcslwr und Umlaute on Tue, 08 Aug 2006 10:20:05 GMT]]></title><description><![CDATA[<p>Vielen Dank, das funktioniert. Was mich allerdings etwas stutzig macht ist das mit std::locale loc(&quot;English_US&quot;); auch &quot;aouaouäöüäöüß&quot; raus kommt.<br />
Naja mir solls recht sein...</p>
<p>Achja, warum sollte der Code bei anderen Compilern Probleme machen? Zumindest der unicode Teil ist doch rein STL oder nicht?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1112825</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1112825</guid><dc:creator><![CDATA[Matroc]]></dc:creator><pubDate>Tue, 08 Aug 2006 10:20:05 GMT</pubDate></item></channel></rss>