x-lain Geschrieben 19. Januar 2010 Teilen Geschrieben 19. Januar 2010 (bearbeitet) Hallo, ich bin ein neuer Noob ^^ (eigentlich nicht aber das stell ich immer wieder fest wenn ich auf was neues treff) Ich habe da ein Problem was mir schon seit Tagen meinen geliebten Schlaf raubt. Auch lange Internetrechergen bringen mich eigentlich nur vor dem nervlichen Abgrund und zeigen das leider keiner wirkliche Ahnung hat. ..ich hoffe doch ganz stark, dass ich hier unter Fachinformatikern Die Hilfe finde. ^^ Projekt: Ich versuche mich zurzeit auch an einem dieser IRC Chatbots. Eigentlich soll es mal ein Servicebot für einen Channel werden, also auch was sinnvolles. So weit alles auch ganz gut und funktioniert, doch sind wir in der Zeit wo viele IRC User auch UTF8 verwenden und genau das ist das Problem. Problem: Ich bekomme vom Server solche UTF8 interpretationen "mögen", die wie ich vermute ein MultiByte darstellt und leider kann ich solche Zeichenketten nicht ordentlich verarbeiten. Soweit ich in Erfahrung bringen konnte muss ich also ein WideChar verwenden. Das funktioniert blos leider alles nicht bei mir, warscheinlich weil ich einfach keine Ahnung habe von den benötigten Bibos und Einstellungen. ^^ Es soll auch die Möglichkeit geben Unicode für den Compiler zu aktivieren, das habe ich im Präprozessor eingetragen jedoch zeigt das keine Wirkung. Das Einzige was funktioniert ist wchar_t, aber kein wcout. (fehlt die Definierung zu) das muss ich auch mit L"Text" eingeben und kann kein _T"text" verwenden was schon mal zeigt das kein Unicode aktiviert ist. OS: als Systeme verwende ich GCC als MinGW unter Eclipse, habe also Win7x64. Zu Anfang hatte ich auch mal ne VM mit Ubuntu laufen, genau so mit Eclipse und GCC, bis mir das Sichtfeld und das Handling in der VM zu nerfig wurde. Ich würde schon gerne auf STL bleiben um die Sachen im Win schreiben und dann im Linux verwenden zu können. Mit CrossBibos wie QT und Boost habe ich keine Erfahrung, da sie mir nicht wirklich ein ordentliches lernen des c/c++ zu ermöglichen scheinen (zummindest ist das wie wenn MS in VC sein eigenes Süppchen kocht). Ich bitte also diejenigen um DRINGENDSTE Hilfe die mir ein wenig beim Umgang mit Unicode und Multibytes helfen können !! ^^ Bearbeitet 19. Januar 2010 von x-lain Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Klotzkopp Geschrieben 19. Januar 2010 Teilen Geschrieben 19. Januar 2010 leider kann ich solche Zeichenketten nicht ordentlich verarbeiten.Das ist eine unzureichende Problembeschreibung. Wie willst du sie verarbeiten, und warum genau geht das nicht? Soweit ich in Erfahrung bringen konnte muss ich also ein WideChar verwenden.Da du uns die Grundlagen, die zu dieser Erkenntnis geführt haben, nicht verrätst, kann man dazu erst mal nicht viel sagen. Problem: Ich bekomme vom Server solche UTF8 interpretationen "mögen", die wie ich vermute ein MultiByte darstelltSo sieht es aus, wenn man einen String, der eigentlich UTF-8-codiert ist, in einer falschen Codierung betrachtet. Der String an sich ist wohl in Ordnung. Nur die Funktion, die diesen Text daraus erzeugt hat, geht von einer anderen Codierung aus. Das funktioniert blos leider alles nicht bei mir, Auch mit dieser Fehlerbeschreibung kann man nichts anfangen. Ich würde schon gerne auf STL bleiben um die Sachen im Win schreiben und dann im Linux verwenden zu können. Mit CrossBibos wie QT und Boost habe ich keine Erfahrung, da sie mir nicht wirklich ein ordentliches lernen des c/c++ zu ermöglichen scheinen (zummindest ist das wie wenn MS in VC sein eigenes Süppchen kocht).Bevor du solche Unterscheidungen machst, solltest du selbst von "C/C++" wegkommen. Willst du C oder C++? "STL" (du meinst vermutlich die C++ Standard Library) und boost klingen nach C++, nicht nach C. Und was boost angeht: Gerade wegen ihrer Portierbarkeit sehe ich keinen Grund, diese Bibliothek zu ignorieren, zumal sie utf8_codecvt_facet anbietet. Ich bitte also diejenigen um DRINGENDSTE Hilfe die mir ein wenig beim Umgang mit Unicode und Multibytes helfen können !! ^^Wie gesagt, zuerst musst du genau beschreiben, was eigentlich das Problem ist, und warum du glaubst, dass eine Umkodierung nach UCS2/UCS4 eine Lösung für dieses Problem ist. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
x-lain Geschrieben 19. Januar 2010 Autor Teilen Geschrieben 19. Januar 2010 ..ich danke dir erst mal für deine schnelle Antwort. Ähhhm.. is ja nicht so das das ganze Thema nicht schon wus genug für mich ist.. aber deine Ansprache bringt mich jetzt komplett durchn Wind. ^^ Die einzige Hoffnung die ich jetzt darin seh ist, dass mein Denken wohl komplett falsch ist, oder du hast mich kaum verstanden. Probieren wir mal ersteres (mein Umdenken) ich dacht ja eigentlich das Problem wäre auszureichend beschrieben, aber ok hier gehts ins Detail: ich möchte mich schon gerne auf C++ festlegen, allein schon wegen des objekt orientierten programmierens. Es gibt aber immer wieder viel Code der aus C stammt, zummindets kann ich das nicht trennen und verwende immer beides gemischt. (jeh nach wo die Umsetzung mir besser gelingt) Projekt: ich erhalte vom IRC Server Zeichen die ich mit den sockets per recv() einlese. Diese sind im ASCII, also mit char lesbar. Nun kommt aber von den Clients UTF8 codierung hinzu. Das heißt ich bekomme in der Zeichenkette also Zeichen die nicht der normalen Darstellung entsprechen sondern mit 2-byte codiert sind: "mögen". Wenn ich jetzt dem Bot die Definition eines Befehls beibringe, dann würde der Vergleich zweier Zeichenketten mit "mögen" == "mögen" nicht übereinstimmen. (Ich dachte ich hätte das alles schon dargelegt?!) Die Grundlagen meiner Erkenntnis von WideChar kann ich dir nicht sagen, da diese aus tagelanger Recherge entstanden sind. So wie ich in Erfahrung bringen konnte, könnte mir also ein wchar_t aus einem "mögen" wieder ein "mögen" machen, dass ich dann wieder vergleichen kann. Oder anders ausgedrückt: ich muss die UTF8 codierte Zeichenkette in meinem Programm bearbeiten können. (Es ist aber auch völlig egal woher ich das habe! Es gibt es und die Frage ist wie man es einsetzt.) Und mit nicht funktioiniert ist eigentlich auch alles richtig beschrieben. Denn es funktioniert nun mal nix von den Beispielen die ich so im Netz gefunden habe. Das mag daran liegen das bei mir Bibos fehlen oder Einstellungen nicht richtig sind.. diese für VC sind oder das der code ganz einfach nur quatsch ist. Da er aber bei einigen zu funktionieren scheint, kann das also nur an mir liegen! Und nein ich werde jetzt keine Codebeispiele auflisten die nicht funktioinieren, weil es darum nicht geht! Sondern ich lernen möchte wie man das richtig macht, von jemanden der sich damit auskennt und nicht rauskriegen möchte warum ein bestimmter code bei mir nicht funktioniert! OK? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Klotzkopp Geschrieben 20. Januar 2010 Teilen Geschrieben 20. Januar 2010 ich erhalte vom IRC Server Zeichen die ich mit den sockets per recv() einlese. Diese sind im ASCII, also mit char lesbar.Das ist schon mal eine falsche Schlussfolgerung. Der Grund des Problems ist ja, dass der Server gerade kein ASCII sendet. Sockets liefern dir ihre Daten immer als Strom von Bytes, daraus kannst du gar nichts über die Codierung der Daten ablesen. Das heißt ich bekomme in der Zeichenkette also Zeichen die nicht der normalen Darstellung entsprechen sondern mit 2-byte codiert sind: "mögen".Was ist denn "normal"? In der ASCII-Codierung gibt es kein ö, es muss also eine andere Codierung verwendet werden. Falls der Vergleichsstring in deinem Quellcode steht, kommt es auf deinen Editor an, wie das Zeichen codiert wird. Du hättest übrigens dein Problem überhaupt nicht als solches wahrgenommen, wenn du unter Linux entwickelt hättest, weil da UTF-8 ein Quasi-Standard ist, damit dein Quellcode auch UTF-8-codiert wäre und die Strings damit gleich wären. Wenn du unter Linux in deinem Quellcode "mögen" schreibst, siehst du in Windows vermutlich auch "mögen". Das liegt nicht daran, dass UTF-8 irgendwie falsch oder nicht "normal" ist. Es liegt auch nicht daran, dass das ö als zwei Bytes codiert ist. Die seltsamen Zeichen rühren nur daher, dass die Daten falsch interpretiert werden. Schau dir mal deinen "normalen" Quellcode unter Linux an. Andersrum geht das nämlich auch schief: Wenn man deinen ISO 8859-1/Windows-1252-codierten Quelltext als UTF-8 interpretiert, steht da auch nicht mehr "mögen". Wenn ich jetzt dem Bot die Definition eines Befehls beibringe, dann würde der Vergleich zweier Zeichenketten mit "mögen" == "mögen" nicht übereinstimmen.Aber doch nur, weil dein Vergleichsstring eine andere Codierung hat. Oder anders ausgedrückt: ich muss die UTF8 codierte Zeichenkette in meinem Programm bearbeiten können.Bevor du dich jetzt komplett auf UTF-8 einschießt: Es gibt für IRC (noch) keine vorgeschriebene Zeichencodierung: Internet Relay Chat - Wikipedia, the free encyclopedia Es ist richtig, dass UTF-8 weit verbreitet ist, aber es könnte dir immer noch passieren, dass du anders codierte Daten empfängst. Und nein ich werde jetzt keine Codebeispiele auflisten die nicht funktioinieren, weil es darum nicht geht! Sondern ich lernen möchte wie man das richtig macht, von jemanden der sich damit auskennt und nicht rauskriegen möchte warum ein bestimmter code bei mir nicht funktioniert! OK?Ok, unter der Annahme, dass jeder andere Code, den du so findest, ohnehin falsch ist, und es eine einzig richtig Lösung gibt, die noch niemand sonst gefunden hat, kann man so argumentieren. Aber es lohnt sich manchmal auch, zu lernen, wie man fremden Code zum Laufen bringt. Die Frage ist doch: Willst du dich auf UTF-8 festlegen, und musst du noch etwas anderes tun als Strings vergleichen? Du schreibst zwar von "Bearbeiten", hast aber immer noch nicht genauer erklärt, was du mit den Strings tun willst. Solange es nur Vergleiche sind, und du dich mit UTF-8 zufrieden gibst, würde ich dir empfehlen, einfach deine Vergleichsstrings gleich in der passenden Codierung abzulegen, dann kannst du dir sämliche Umcodierungen zur Laufzeit sparen. Du kannst sie im Quellcode (also als Stringliterale) ablegen, wenn du einen UTF-8-fähigen Editor benutzt. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
x-lain Geschrieben 20. Januar 2010 Autor Teilen Geschrieben 20. Januar 2010 weißt du, du bist die ganze Zeit nur am rumk.ac.ken, dies ist das nicht hier, dies ist das nicht da.... blah blah blah... -> deine Argumente waren bist jetzt nicht hilfreich !! Also hör auf meine Formulierung durchn Wolf zu drehen, das nervt tierisch! Von dem ganzen gewäsch was du von dir losgelassen hast, war bis jetzt leider nicht ein brauchbarerer Hinweis dabei! Und fähig mal einfache Formulierung ein bisschen weiter zu denken scheinst du auch nicht zu sein! Ich habe mein Problem ausreichend beschrieben und verstehe nicht warum das so schwer zu verstehen ist was ein Bot ein einfachster weise tun soll? Vorallem wenn ich dir schon sage das ich die Zeichenketten einlese und Befehle interpretieren möchte. Vllt kommt da noch mal nen Regex dazu, das nach bestimmten Variationen sucht, aber da ich nicht soo viel Ahnung habe wird da auch nicht mehr entstehen! Als normale Eingabe kommt warscheinlich son ISO-8858-1 standard, das es nicht ASCII sein kann habe ich dank deiner K-o-t-z-brocken methode auch verstanden. Ich habe übrigens was von Unicode geschrieben und nicht das ich mich auf UTF8 oder 16 spezialisiere, was wieder von deiner Unfähigkeit richtig aufzupassen zeigt. Und ich habe auch geschrieben, dass ich GCC mit Eclipse im Linux laufen hatte und dort absolut die verdammten sch-ei-ss selben Resultate raus hatte. Also ist dein Klugsch-eißer von wegen guckmal tolles Linux hier absoluter Müll! Ich bin übrigens bei Windows geblieben weil mir Linux so unkonfortabel ist und das ständige Suchen nach Packeten mir auf den Sack geht! Das ganze Gewäsch funktioniert in Windows super gut, die Frage ist nur zu wissen wie mans macht! Dass das natürlich ein Linux User wie du nicht weiß sollte mir eigentlich klar sein. Und ja, sicher lernt man aus dem untersuchen und zum funktionieren bringen von Code was. Aber ich wollte jetzt nicht noch mal das halbe Internet nach Codebeispielen durchforsten nur damit mich so ein Knallkopp wie du rethorisch fragt: Na welche Codes denn? (Und es aber überhaupt nicht interessiert.) Das ich also mächtig auf der Palme bin solle dir aufgefallen sein. Oder soll ich das auch noch mal näher erklären? Also wenn du keinen hilfreicheren Senf von dir geben kannst, dann lass es bitte. (Und entferne doch als Admin gleich mal deinen ganzen Müll den du verzapft hast, oder du gibst endlich mal ne ordentlich noob-verständliche hifreiche Antwort!) Sämtliche Möglichkeiten von Zeicheninterpretierten Varianten eines einfachen befahls kann ja wol auch nicht von einem qualitativen Code zeugen, oder? (Zummindest musst ich ziehmlich lachen als ich den Senf gelesen habe!) Also entweder hast du nun das Know-how und kannst mir bitte ordentlich helfen, oder du bist genau so doof wie ich und weißt es nicht.. dann unterlasse bitte mein Zeilenauseinander nehmen und schreib zur abwechslung mal was hilfreiches was mich weiter bringt. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Klotzkopp Geschrieben 20. Januar 2010 Teilen Geschrieben 20. Januar 2010 weißt du, du bist die ganze Zeit nur am rumk.ac.ken, dies ist das nicht hier, dies ist das nicht da.... blah blah blah...Ich versuche nur, dir zu erklären, was das eigentliche Problem ist. Übrigens ist unser Wortfilter nicht dazu da, dass man ihn durch alternative Schreibweisen umgeht. Und bleib bitte sachlich. Betrachte dich als verwarnt. -> deine Argumente waren bist jetzt nicht hilfreich !!Ich kann nur annehmen, dass du mich nicht verstanden hast. Vorallem wenn ich dir schon sage das ich die Zeichenketten einlese und Befehle interpretieren möchte.Das klingt nach Strings suchen und vergleichen. Das ist von der Codierung unabhängig, solange beide Strings gleich codiert sind. Vllt kommt da noch mal nen Regex dazu, das nach bestimmten Variationen sucht, aber da ich nicht soo viel Ahnung habe wird da auch nicht mehr entstehen!Wenn es dann soweit ist, wäre es notwendig, sich Gedanken zu machen, ob du eine UTF-8-fähige Regex-Bibliothek findest oder alles nach UCS2/4 umwandelst. Als normale Eingabe kommt warscheinlich son ISO-8858-1 standard, das es nicht ASCII sein kann habe ich dank deiner K-o-t-z-brocken methode auch verstanden.Was meinst du mit "normale Eingabe"? "mögen" ist ganz klar ein String, der als UTF-8 codiert und dann als ISO 8859-1 decodiert wurde. Ich habe übrigens was von Unicode geschrieben und nicht das ich mich auf UTF8 oder 16 spezialisiere, was wieder von deiner Unfähigkeit richtig aufzupassen zeigt. Nein, du hast mich wieder nicht verstanden. Deine Bemühungen (soweit ich sie verstanden habe) zielten darauf ab, dass du versucht hast, die vom Server empfangenen, UTF-8-codierten Daten in UCS2/4 umzuwandeln. Ich habe dich nur darauf hingewiesen, dass IRC nicht auf UTF-8 festgelegt ist, du also damit rechnen must, anders codierte Strings zu empfangen. Was konkret, steht in dem Wikipedia-Link. Und ich habe auch geschrieben, dass ich GCC mit Eclipse im Linux laufen hatte und dort absolut die verdammten sch-ei-ss selben Resultate raus hatte.Nö, hast du nicht. Du hast erwähnt, dass du das verwendet hast, aber nicht, dass dabei die selben Probleme auftraten. Also ist dein Klugsch-eißer von wegen guckmal tolles Linux hier absoluter Müll! Ich bin übrigens bei Windows geblieben weil mir Linux so unkonfortabel ist und das ständige Suchen nach Packeten mir auf den Sack geht! Das ganze Gewäsch funktioniert in Windows super gut, die Frage ist nur zu wissen wie mans macht! Dass das natürlich ein Linux User wie du nicht weiß sollte mir eigentlich klar sein.Ich bin weder ein "Linux User" noch habe ich Linux irgendwie gelobt. Keine Ahnung, wo du das rausliest. Ich habe nur erwähnt, dass dir das Problem unter Linux nicht aufgefallen wäre. Wenn bei dir auch unter Linux Probleme auftraten, muss das an etwas anderem gelegen haben. Da ich deinen Code nicht kenne, kann ich dazu nicht mehr sagen. Vielleicht hat der Server just in diesem Moment mal nicht UTF-8 mit dir gesprochen. Und ja, sicher lernt man aus dem untersuchen und zum funktionieren bringen von Code was. Aber ich wollte jetzt nicht noch mal das halbe Internet nach Codebeispielen durchforsten nur damit mich so ein Knallkopp wie du rethorisch fragt: Na welche Codes denn? (Und es aber überhaupt nicht interessiert.)Entschuldige, die meisten, die hier mit "funktioniert nicht" auftauchen, möchten es zum Funktionieren bringen. Hellsehen kann ich leider nicht. Das ich also mächtig auf der Palme bin solle dir aufgefallen sein. Oder soll ich das auch noch mal näher erklären? Also wenn du keinen hilfreicheren Senf von dir geben kannst, dann lass es bitte. (Und entferne doch als Admin gleich mal deinen ganzen Müll den du verzapft hast, oder du gibst endlich mal ne ordentlich noob-verständliche hifreiche Antwort!)Du wirst es mir überlassen müssen, was ich als Müll betrachte und entferne. Sämtliche Möglichkeiten von Zeicheninterpretierten Varianten eines einfachen befahls kann ja wol auch nicht von einem qualitativen Code zeugen, oder? (Zummindest musst ich ziehmlich lachen als ich den Senf gelesen habe!)Ja, Anfänger unterschätzen oft den Aufwand, den man betreiben muss, um mit allen Besonderheiten bestehender nicht standardisierter Software klarzukommen. Also entweder hast du nun das Know-how und kannst mir bitte ordentlich helfen, oder du bist genau so doof wie ich und weißt es nicht.. dann unterlasse bitte mein Zeilenauseinander nehmen und schreib zur abwechslung mal was hilfreiches was mich weiter bringt. Ich habe dir bereits eine Empfehlung gegeben, wie du weiter vorgehen sollst. Ob du das annimmst, ist deine Sache. Aber ich kann es auch nochmal etwas einfacher formulieren: Plan A: Speichere deine Vergleichs- und Suchstrings als UTF-8. Plan B: Benutze utf8_codecvt_facet aus der boost-Bibliothek. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
x-lain Geschrieben 20. Januar 2010 Autor Teilen Geschrieben 20. Januar 2010 so wirklich bringt mich das jetzt nicht weiter.. und ich habe auch kein Bock mehr irgend was detaillierter zu schreiben weil mir son Obermacker alles auf die Goldwage legt und auch wenn ich vllt nicht alles korrekt formuliere er sich nicht den rest iterpretatorisch denken kann. Ich habe keine Lust hier nen Formulier-Krieg zu führen. wenn ich im linux wie im windows editor das standardmäßige utf8 aktiviere, wird mir lediglich das Anzeigebild ordentlich angezeigt. Aber mögen != mögen weil eines länge 6 und das andere 5 hat... jaja Zeichenkodierung is klar. Aber genau da besteht doch das Problem. Daher fällt aber das Problem im Linux nicht aus der Rolle! (es wäre ineressanter den Compiler auf utf8 anweisen zu können, was nix mit den editor zu tun hat) -> Speichere deine Vergleichs- und Suchstrings als UTF-8. ich soll also ernsthaft "mögen" in den quelltext schreiben? Schlechter Programmierstiel. Sowas habe ich früher zum Spaß in MIRC machen müssen da mir nix anders übrig bleibt, eine saubere Codierungsverarbeitung ist das nicht! Um so trauriger, dass das von einem Admin empfohlen wurde. -> Benutze utf8_codecvt_facet aus der boost-Bibliothek. Ok, wie ich sagte komme ich mit boost nicht klar. Ich bräuchte dazu also schon ein paar mehr Informationen, Beispiele oder ne ordentliche Anleitung wie ich das verwende und was das ist. (Bitte keine Links, den englischen Beitrag habe ich bereits gelesen, aber kann ihn nicht umsetzen.) -> Ich wollte eigentlich mit WideCharakter in C/C++ programmieren lernen. um alle Zeichen ketten in unicode korrekt interpretieren zu können. PS: Das Regex in eurem BBC code zur Wortzensierung ist nun mal schwachsin! Daher solltet ihr euch überlegen ob das sinnvoll ist da es ja eure "Laufzeit" erhöht. *kicher* Selbst ich habe schon intelligentere Regexe verfasst und wie du weißt habe ich nicht wirklich viel Annung. Keiner verwendet schmutzige Worte (oder wüsste nicht sie zu umgehen) es sei denn man ist durch einen aroganten zB Admin generft. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Klotzkopp Geschrieben 20. Januar 2010 Teilen Geschrieben 20. Januar 2010 (es wäre ineressanter den Compiler auf utf8 anweisen zu können, was nix mit den editor zu tun hat)Doch, es hat ausschließlich mit dem Editor zu tun. Der Compiler ist gegenüber Zeichencodierungen komplett blind, dem ist egal, ob du deine Stringliterale sonstwie codierst. Die werden einfach nur eins zu eins ins Programm übertragen. ich soll also ernsthaft "mögen" in den quelltext schreiben?Einfacher wäre es natürlich, einen UTF-8-fähigen Editor zu verwenden. Oder die Strings gar nicht erst in den Quelltext zu schreiben, sondern in eine externe Datei. Man könnte XML benutzen, da hat man die Möglichkeit, die Codierung mit abzuspeichern, um Missverständnisse zu vermeiden. Schlechter Programmierstiel.Ganz ehrlich, ich glaube nicht, dass du als "Noob" das beurteilen kannst. Bedenke auch, dass ich versuche, dir Lösungen vorzuschlagen, die du auch umsetzen kannst. -> Benutze utf8_codecvt_facet aus der boost-Bibliothek. Ok, wie ich sagte komme ich mit boost nicht klar.Nö, du sagtest, du hättest keine Erfahrung damit. Die Probleme packst du immer erst nach und nach aus. Ich bräuchte dazu also schon ein paar mehr Informationen, Beispiele oder ne ordentliche Anleitung wie ich das verwende und was das ist. (Bitte keine Links, den englischen Beitrag habe ich bereits gelesen, aber kann ihn nicht umsetzen.)Da ist doch ein Codebeispiel dabei. Wenn da etwas unklar ist, dann sag bitte, was. -> Ich wollte eigentlich mit WideCharakter in C/C++ programmieren lernen. um alle Zeichen ketten in unicode korrekt interpretieren zu können.Zum Umwandeln von UTF-8 in UCS-2 würde ich unter Windows MultiByteToWideChar benutzen, aber du wolltest ja eine portable Lösung. Da kenne ich zur Zeit nichts anderes außer boost. PS: Das Regex in eurem BBC code zur Wortzensierung ist nun mal schwachsin! Daher solltet ihr euch überlegen ob das sinnvoll ist da es ja eure "Laufzeit" erhöht. *kicher*Es hilft, gelegentliche Ausrutscher unter der Wahrnehmungsschwelle zu halten. Gegen Kindergartenkinder hilft es natürlich nicht, aber die sind selten. Selbst ich habe schon intelligentere Regexe verfasst und wie du weißt habe ich nicht wirklich viel Annung. Keiner verwendet schmutzige Worte (oder wüsste nicht sie zu umgehen) es sei denn man ist durch einen aroganten zB Admin generft.Die Warnung des arroganten Obermackers hat wohl nicht gereicht. Na dann... Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Pointerman Geschrieben 20. Januar 2010 Teilen Geschrieben 20. Januar 2010 Wenn ich es richtig verstanden, dass Du ausschliesslich UTF8-Strings bekommst, mit denen Du vergleichen willst? Wenn ja, was spricht dann dagegen "mögen" in den Quelltext zu schreiben? Bleibt Dir ja nichts anderes uebrig, wenn Du mit "mögen" vergleichen willst. Die Daten sind ja die gleichen, als wenn Du Deinen Deinen ANSI-Test erst in UTF-8 wandeln wuerdest. Ansonsten koenntest Du Deine UTF8-Daten ja auch in ANSI wandeln und dann vergleichen, aber ob das viel sauberer ist weiss ich auch nicht. Vielleicht hilft Dir folgende Seite: UTF8 zu ISO 8859-1 Da wird einmal gezeigt, wie man selbst wandelt(Code) und ein Link zu einer Bibliothek geboten. [Offtopic]Du solltest verstaerkt an Deinem Verhalten anderer Forenmitglieder arbeiten.[/Offtopic] Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.