Charcodeat Binär Optionen
Wie ist das möglich, ist kein Ascii-Charakter, wird mit 3 Bytes, 0xE881B5 codiert. Was ich erwarte, ist, u0081 zu bekommen, weil ascii Zeichen mit einem einzelnen Byte codiert werden. Wenn ich mit binärer kodierung lese, druckt es wahr, was ich mit ascii codierung erwarte. Ist das Ergebnis ein vorsätzliches Feature Wenn ascii encoding gibt das gleiche Ergebnis wie utf8 encoding dann warum ist ascii ein möglicher Parameter Dies ist der Inhalt (mit HxD-Programm geöffnet): Die schnelle Antwort ist, dass Node keine Magie bei der Umwandlung von einem Puffer zu machen Ein String, ob es ascii oder utf8 ist. Ihre utf8 string ist total ungültig ascii. Also ich denke, idealerweise würde es einen Fehler werfen, aber offensichtlich ist es nicht. Ich würde nicht erwarten, dass die u0081, da ist ungültig ascii. Sie können in der Knotenquelle sehen. Der Code für die Umwandlung von einem Puffer in einen String sind die. Scheibenfunktionen. Die Funktionen ascii und utf8 sind identisch, was zu dem Verhalten führt, das Sie sehen. Diese Konstrukteure machen nichts Besonderes, sie nehmen einfach eine Sequenz von Bytes und konvertieren sie in eine JS-String, vorausgesetzt, dass es in dieser Codierung gültig ist. Die Unterschiede zwischen den beiden Codierungen stammen aus den AsciiWrite - und Utf8Write-Funktionen in dieser Datei, die die Dinge anders behandeln. Wie Sie aus Ihren Tests gesehen haben, passt Binär besser mit dem, was Sie suchen. Binär durchläuft jedes einzelne Byte in einem Puffer und gibt einen String zurück, bei dem jeder Codepunkt diesen Bytewert hat. Ohne genau zu wissen, welche Sprache das ist, ich vermisse Japanisch (korrigieren Sie mich, wenn ich mich irre). Aber ich glaube, es ist rein zufällig, dass die Charaktere, die du geliefert hast, in den Ascii-Standard fallen, japanische Zeichencodierungen. Allerdings hat Shift JIS die unglückliche Eigenschaft, dass es oft einen Parser bricht (Software, die den codierten Text liest), die nicht speziell entworfen ist Um es zu behandeln Zum Beispiel kann eine Textsuchmethode falsche Treffer erhalten, wenn sie nicht für Shift JIS konzipiert ist. EUC hingegen wird von Parsern, die für 7-Bit-ASCII geschrieben wurden, viel besser behandelt (und damit werden EUC-Codierungen auf UNIX verwendet, wo ein Großteil des File-Handling-Codes historisch nur für englische Codierungen geschrieben wurde). Aber EUC ist nicht rückwärts kompatibel mit JIS X 0201, der ersten japanischen Hauptkodierung. Weitere Komplikationen entstehen, weil die ursprünglichen Internet-E-Mail-Standards nur 7-Bit-Übertragungsprotokolle unterstützen. So wurde die JIS-Codierung zum Senden und Empfangen von E-Mails entwickelt. In Zeichen-Set-Standards wie JIS, sind nicht alle erforderlichen Zeichen enthalten, so gaiji (externe Zeichen) werden manchmal verwendet, um den Zeichensatz zu ergänzen. Gaiji kann in Form von externen Font-Packs kommen, wo normale Zeichen durch neue Zeichen ersetzt wurden oder die neuen Zeichen zu unbenutzten Zeichenpositionen hinzugefügt wurden. Allerdings sind Gaiji nicht praktisch in Internet-Umgebungen, da die Schriftart muss mit Text übertragen werden, um die Gaiji verwenden. Infolgedessen werden solche Zeichen mit ähnlichen oder einfacheren Zeichen geschrieben, oder der Text muss möglicherweise mit einem größeren Zeichensatz (wie Unicode) geschrieben werden, der das erforderliche Zeichen unterstützt. Ich würde mit einigen exotischen Charakteren versuchen, da dein Test fehlschlägt. Beantwortet Dec 14 12 at 13:39 Das doesn39t Antwort, warum Knoten decodiert die Datei als utf8, während explizit gesagt, um es als ascii decodieren. Das erwartete Verhalten ist ein Fehler, da 0xe8 außerhalb des ascii Bereichs liegt. Ndash Deestan Dec 14 12 at 13:43 Deestan Wo in deiner ursprünglichen Frage hast du irgendetwas über utf8 gesagt, es sei denn, ich vermisse etwas und binäres utf8 ndash Woot4Moo Dec 14 12 at 13: 45Background Vor ein paar Tagen fuhr ich mit dem Laden von 3D Modelle für den Einsatz mit WebGL (hier Demos). Ich hatte einen OBJ-Parser und einige Testmodelle, die von einem früheren Projekt herumliegen, und der Parser war nur zweihundert Zeilen, also habe ich ihn auf JavaScript portiert. Aber die OBJ-Dateien waren ziemlich groß, ein 40-Tausend-Quad-Modell ohne Normalen oder Texcoords war 2,4 Megs. Nicht wirklich etwas, das du über das Internet schicken möchtest. Das OBJ-Dateiformat speichert Koordinaten und Gesichtsindizes als Text. Während es die Modelldateien menschlich lesbar macht und einfach zu analysieren, erhöht es auch die Dateigröße. Unkomprimiert, ein einziger Coord dauert 9 Bytes, plus ein optionales Zeichenbyte. Mein erster Instinkt war, nur gzip Kompression auf Server-Seite zu verwenden. Und es geschafft, die Dateigröße auf 880k für die oben genannten 2,4 Meg OBJ zu bringen. Immer noch. Vielleicht wäre es noch mehr zu gewinnen, indem man die Coord - und Gesichtsindizes als Binärdaten speichert. Ich ging für 0,1-normalisierte 16-Bit-Festkommazahlen für die Koordinaten und 16-Bit unsigned Ints für die Face-Indizes. Ich musste auch die Scheitel - und Gesichtszähler speichern, für die ich 32-Bit-unsignierte Ints benutzte (die, daran denken, ist ein bisschen albern, da die Verwendung von 16-Bit-Face-Indizes den Vert-Count auf 65536 begrenzt). Schließlich fügte ich zwei Drei-Float-Vektoren für Coord-Skalierung und Übersetzung hinzu, um die normalisierten Coords auf etwas nahe an ihren ursprünglichen Werten aufzublasen. Ergebnis: 560k für unkomprimierte Binärdatei, 470k gzipped. Nett. Obwohl es mit einem Dreieckstreifen anstelle von separaten Quads und Tris weiter unten gebracht werden konnte. Und es gibt fantastische 3D-Mesh-Kompressionspapiere, die über das Komprimieren auf weniger als 2 Bits pro Dreieck reden (für das Beispielmodell: 40kquads - 80ktris 160kb 20kB). Aber genug davon für jetzt. Weiter, wie man die Binärdaten analysiert. Analysieren von Binärdaten Um einen Binärstring mit JavaScript zu analysieren, verwenden Sie charCodeAt und die üblichen Bit-Munging-Operatoren (amp,, ltlt). Zuerst benötigen Sie den Byte-Wert an einem Punkt in der Zeichenfolge. Da charCodeAt auf Zeichen und nicht Bytes arbeitet, muss man dem Browser mitteilen, dass er die Daten als unparsed string erhält, indem er overrideMimeType (textplain charsetx-user-defined) auf deinem XMLHttpRequest aufruft. Dann maskiere das High-Byte jedes Char-Codes ab, um den Low-Byte-Wert zu erhalten. Die folgenden Arbeiten zumindest auf Firefox und WebKit, ich weiß nicht über IE und Opera. Das Laden von unsignierten Ints ist einfach genug, laden Sie einfach die Bytes für die int und verschieben Sie sie an ihre Orte: Das Lesen in normalisierten Fixpunktzahlen als Floats ist nicht viel härter entweder, wie theyre mit uint16 generiert (normalizedfloat 65535): Floats, auf der anderen Hand, sind ein bisschen mehr beteiligt. Das Schreiben des Float-Parsers war pädagogisch, jetzt habe ich ein besseres Verständnis der Bugger Der folgende Code behandelt nicht die speziellen Zahlen und verliert wahrscheinlich Präzision, ist langsam, etc. so, wenn Sie eine bessere Möglichkeit haben, Binär-Schwimmer zu analysieren, bitte teilen. Und da hast du es Ich habe mich um das Parsen von signierten Ganzzahlen geholt, obwohl ich vermute, dass ich 1 ltlt (Bits-1) von dem unsignierten Wert subtrahiere, würde der Trick ausführen. Binäre Option BREAKING DOWN Binäre Option Anleger können Binäroptionen aufgrund ihrer offensichtlichen Einfachheit attraktiv finden, zumal die Investor muss im Wesentlichen nur erraten, ob etwas bestimmtes wird oder nicht passieren wird. Zum Beispiel kann eine binäre Option so einfach sein, ob der Aktienkurs der ABC Company am 22. November um 10:45 Uhr über 25 liegt. Wenn ABCs Aktienkurs 27 zum vereinbarten Zeitpunkt ist, wird die Option automatisch ausgeübt und der Optionsinhaber erhält einen voreingestellten Geldbetrag. Unterschied zwischen Binär - und Plain-Vanille-Optionen Binäre Optionen unterscheiden sich deutlich von Vanille-Optionen. Plain Vanilla Optionen sind eine normale Art von Option, die keine Besonderheiten enthält. Eine einfache Vanille-Option gibt dem Inhaber das Recht, einen zugrunde liegenden Vermögenswert zu einem bestimmten Preis am Verfallsdatum zu kaufen oder zu verkaufen, der auch als normale Vanille-Option bekannt ist. Während eine binäre Option hat besondere Funktionen und Bedingungen, wie bereits erwähnt. Binäre Optionen werden gelegentlich auf Plattformen gehandelt, die von der Securities and Exchange Commission (SEC) und anderen Regulierungsbehörden reguliert werden, aber sind höchstwahrscheinlich über das Internet auf Plattformen gehandelt, die außerhalb der Vorschriften existieren. Weil diese Plattformen außerhalb von Vorschriften tätig sind, sind die Anleger ein größeres Risiko für Betrug. Umgekehrt werden Vanille-Optionen in der Regel reguliert und an großen Börsen gehandelt. Zum Beispiel kann eine binäre Option Handelsplattform verlangen, dass der Anleger eine Geldsumme, um die Option zu erwerben. Wenn die Option out-of-the-money abläuft, was bedeutet, dass der Anleger den falschen Vorschlag gewählt hat, kann die Handelsplattform die gesamte Summe der hinterlegten Geld ohne Rückerstattung annehmen. Binäre Option Real World Beispiel Angenommen, die Futures-Kontrakte auf den Standard Poors 500 Index (SP 500) handeln bei 2.050,50. Ein Investor ist bullish und fühlt, dass die Wirtschaftsdaten, die um 8:30 Uhr freigegeben werden, die Futures-Kontrakte über 2.060 bis zum Ende des aktuellen Handelstages drücken werden. Die Binärrufoptionen auf den SP 500 Index-Futures-Kontrakten legen fest, dass der Anleger 100 erhalten würde, wenn die Futures über 2.060 liegen, aber nichts, wenn er unten schließt. Der Investor kauft eine binäre Call-Option für 50. Deshalb, wenn die Futures schließen über 2.060, würde der Investor einen Gewinn von 50 oder 100 - 50 haben. Ich habe versucht, einen HTML5-Image-Uploader wie der auf der Mozilla neu zu implementieren Hacks-Seite, aber das funktioniert mit WebKit-Browsern. Ein Teil der Aufgabe besteht darin, eine Bilddatei aus dem Leinwandobjekt zu extrahieren und an ein FormData-Objekt zum Hochladen anzuhängen. Das Problem ist, dass während Canvas die Funktion toDataURL hat, um eine Darstellung der Bilddatei zurückzugeben, akzeptiert das FormData-Objekt nur File - oder Blob-Objekte aus der Datei-API. Die Mozilla-Lösung verwendete die folgende Firefox-Funktion auf Leinwand: die nicht auf WebKit-Browsern verfügbar ist. Die beste Lösung, die ich mir vorstellen konnte, ist, einen Weg zu finden, um einen Data URI in ein File-Objekt zu konvertieren, das ich als Teil der Datei-API bezeichnen könnte, aber ich kann nicht für das Leben von mir etwas zu tun. Ist es möglich Wenn nicht, hat alle Alternativen Firefox canvas. toBlob () und canvas. mozGetAsFile () Methoden. Aber andere Browser nicht. Wir können Dataurl aus Leinwand und dann konvertieren Dataurl zu Blob Objekt. Hier ist meine dataURLtoBlob () - Funktion. Es ist sehr kurz. Verwenden Sie diese Funktion mit FormData, um Ihre Leinwand oder Dataurl zu behandeln. Außerdem können Sie eine HTMLCanvasElement. prototype. toBlob-Methode für Nicht-Gecko-Engine-Browser erstellen. Jetzt canvas. toBlob () funktioniert für alle modernen Browser nicht nur Firefox. Zum Beispiel: beantwortet 26. Mai um 22:51 Der sich entwickelnde Standard sieht aus, um canvas. toBlob () nicht canvas. getAsFile () wie Mozilla gehorsam zu erraten. Ich sehe keinen Browser, der es noch unterstützt :( Vielen Dank für diesen großartigen Thread Auch jemand, der die akzeptierte Antwort versucht, sollte vorsichtig sein mit BlobBuilder wie Im, der Unterstützung findet, um begrenzt zu sein (und namespaced): Wurden Sie mit anderen Bibliotheken Polyfill für BlobBuilder
Comments
Post a Comment