Ich verwende https://github.com/KxSystems/kdb/blob/master/c/c.js für die Verbindung von HTML 5 Websocket mit KdB + Backend. Ich habe ein Problem beim Senden von chinesischen Zeichen aus dem Backend. HTML-Zeichensatz ist für UTF-8 festgelegt, zeigt jedoch immer noch den Fehlercode an, der korrekter ist. Gleiches Ergebnis, wenn ich es in der Webbrowser-Konsole drucke. Dosis c.js unterstützt UTF-8? Wie kann ich Unicode-Zeichen korrekt anzeigen, die von KDB + im Browser gesendet wurden?Unterstützt KDB + HTML 5 Websocket UTF-8?
2
A
Antwort
1
Verwandte Themen
- 1. Unterstützt HTML 5 Datenattribut in alten Browsern?
- 2. Headless Browser, der HTML 5 Video unterstützt?
- 3. utf8 unterstützt nicht für andere Sprachen warum?
- 4. Unterstützt CF10 sichere Websocket wss?
- 5. RxJS 5 - websocket Array Nachrichten
- 6. Wird die Websocket-Funktion in Cobalt unterstützt?
- 7. HTML 5 + Fortschrittselementprüfung?
- 8. SignalR MVC 5 Websocket keine gültigen Anmeldeinformationen
- 9. Einfache Websocket-Implementierung in Laravel 5
- 10. Unterstützt Netty 5 EventExecutorGroup mit ThreadFactory?
- 11. Html Zielattribut nicht unterstützt
- 12. UTF8 Encode/€
- 13. HTML 5 mit CSS 3 und HTML 5 Sockets
- 14. Welche Browser unterstützen HTML 5/CSS3?
- 15. HTML 5 Strukturvariablen Demo
- 16. HTML lernen 5
- 17. HTML 5 - addEventListener Erläuterung
- 18. HTML 5 Video Stretch
- 19. html 5 Leinwand Text
- 20. Html 5 wysiwyg Designer
- 21. HTML 5 Währungsformat
- 22. Html 5 Datei-Upload
- 23. HTML 5 Referenz/Spezifikation?
- 24. HTML 5 und JavaScript
- 25. html 5 Datenwert
- 26. Validierungsfehler für HTML 5
- 27. HTML 5 - Sneaky Zeug
- 28. HTML 5 Favicon - Unterstützung?
- 29. HTML 5 lokaler Speicher
- 30. Doctype, HTML 5
Ich verwende die neueste Version von c.js (kx.com/q/c/c.js). Sieht aber so aus, als würde es die (De-) Serialisierung von UTF8 nicht richtig dosieren. Ich habe beispielsweise einen Test zum Senden chinesischer Zeichen vom Webbrowser an das kdb + -Backend wie unten beschrieben durchgeführt.
in HTML js: var query = {func:"test",arg1:"你好"}; ws.send(serialize(query)); in kdb+ q)test:{show x} q)"\344\275\240\345\245\275" q)'char$"你好" "\304\343\272\303"
Wie Sie sehen können, unterscheidet sich "\ 344 \ 275 \ 240 \ 345 \ 245 \ 275" von "\ 304 \ 343 \ 272 \ 303". Es sieht so aus, als ob c.js eine andere Methode der (De-) Serialisierung von UTF8 aus kdb + Dosis verwendet. – RongshuVersuchen Sie, den Bytestream (mit -1 @) zu drucken, den Sie vom Browser erhalten haben - das sollte die korrekten Zeichen zurückgeben. Es gibt weitere Informationen darüber, wie q Unicode behandelt (http://code.kx.com/wiki/Cookbook/Unicode), die ich jetzt in die ursprüngliche Antwort bearbeiten werde, hoffe, dass es hilft. –
Danke für den Link. q) Test: {Show -1 x;} q) Test [ "\ 344 \ 275 \ 240 \ 345 \ 245 \ 275"] 浣 犲 ソ Aber 浣 犲 ソ ist falsch. Der Bytestream sollte "\ 304 \ 343 \ 272 \ 303" sein, was 你好 entspricht. Ich weiß nicht, warum "你好" vom Browser serialisiert an "\ 344 \ 275 \ 240 \ 345 \ 245 \ 275" statt "\ 304 \ 343 \ 272 \ 303" gesendet wurde? @paul – Rongshu