{"id":5163,"date":"2023-07-24T09:00:54","date_gmt":"2023-07-24T08:00:54","guid":{"rendered":"http:\/\/roboblog.fatal-fury.de\/?p=5163"},"modified":"2024-07-26T13:59:13","modified_gmt":"2024-07-26T12:59:13","slug":"dos-codepage-437-to-utf8","status":"publish","type":"post","link":"http:\/\/roboblog.fatal-fury.de\/?p=5163","title":{"rendered":"C++ Guns: DOS codepage 437 to UTF8"},"content":{"rendered":"<p>Wenn die \u00fcblichen Encodings wie UTF8, Latin1, ISO-8859-15 nicht funktionieren kann man CP437 versuchen. Das ist der Original-Zeichensatz des IBM-PC ab 1981. Dieser enth\u00e4lt Umlaute die in den \u00fcblicherweise eingestellten Encodings nicht angezeigt werden.<\/p>\n<p>Hier mein erster Versuch CP437 nach UTF8 zu konvertieren. Die Sourcecode Datei und der Compiler und das ganze Betriebssystem ist selbstverst\u00e4ndlich auf UTF8 eingestellt, sonst funktioniert es nicht.<\/p>\n<pre class=\"brush: cpp; title: ; notranslate\" title=\"\">\r\nstd::string cp437toUTF8(std::string_view str) {\r\n    std::string result;\r\n    result.reserve(str.size());\r\n    for(unsigned char c : str) {\r\n        switch(c) {\r\n        case 129: result.append(&quot;\u00fc&quot;); break;\r\n        case 132: result.append(&quot;\u00e4&quot;); break;\r\n        case 142: result.append(&quot;\u00c4&quot;); break;\r\n        case 148: result.append(&quot;\u00f6&quot;); break;\r\n        case 153: result.append(&quot;\u00d6&quot;); break;\r\n        case 154: result.append(&quot;\u00dc&quot;); break;\r\n        case 225: result.append(&quot;\u00df&quot;); break;\r\n        default: result.push_back(c);\r\n        }\r\n    }\r\n\r\n    return result;\r\n}\r\n<\/pre>\n<p>[1] https:\/\/de.wikipedia.org\/wiki\/Codepage_437<br \/>\n[2] https:\/\/www.ascii-code.com\/CP437<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Wenn die \u00fcblichen Encodings wie UTF8, Latin1, ISO-8859-15 nicht funktionieren kann man CP437 versuchen. Das ist der Original-Zeichensatz des IBM-PC ab 1981. Dieser enth\u00e4lt Umlaute die in den \u00fcblicherweise eingestellten Encodings nicht angezeigt werden. Hier mein erster Versuch CP437 nach UTF8 zu konvertieren. Die Sourcecode Datei und der Compiler und das ganze Betriebssystem ist selbstverst\u00e4ndlich [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[17,18],"class_list":["post-5163","post","type-post","status-publish","format-standard","hentry","category-allgemein","tag-cpp","tag-linux"],"_links":{"self":[{"href":"http:\/\/roboblog.fatal-fury.de\/index.php?rest_route=\/wp\/v2\/posts\/5163","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/roboblog.fatal-fury.de\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/roboblog.fatal-fury.de\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/roboblog.fatal-fury.de\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"http:\/\/roboblog.fatal-fury.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=5163"}],"version-history":[{"count":3,"href":"http:\/\/roboblog.fatal-fury.de\/index.php?rest_route=\/wp\/v2\/posts\/5163\/revisions"}],"predecessor-version":[{"id":5314,"href":"http:\/\/roboblog.fatal-fury.de\/index.php?rest_route=\/wp\/v2\/posts\/5163\/revisions\/5314"}],"wp:attachment":[{"href":"http:\/\/roboblog.fatal-fury.de\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=5163"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/roboblog.fatal-fury.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=5163"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/roboblog.fatal-fury.de\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=5163"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}