


Was tun, wenn chinesische Knoten-utf8-Zeichen verstümmelt sind?
Knoten-utf8-Lösung für verstümmelte chinesische Zeichen: 1. Überprüfen Sie den Typ von „SarchName“ über „typeof“. 2. Verwenden Sie die Methode „Name=iconv.decode(name,‘gbk‘)“, um die Codierung in utf8 zu konvertieren.
Die Betriebsumgebung dieses Tutorials: Windows 10-System, Node v14.16.0-Version, DELL G3-Computer
Was tun, wenn chinesische Node-utf8-Zeichen verstümmelt sind?
node.js implementiert die Codierungskonvertierung von GBK in UTF8, eine chinesische verstümmelte Lösung.
Bevor ich dies tat, hatte ich ein Bedürfnis, nämlich den Knoten zu verwenden, um eine Fuzzy-Abfrage von Namen durchzuführen. Tatsächlich ist dies eine einfache Angelegenheit, die nicht einfacher sein kann, aber ich war zwei Tage lang mit diesem Thema beschäftigt.
Aus geschäftlichen Gründen haben wir eine Fuzzy-Abfrage für die neue Funktion durchgeführt.
Zuerst musste ich einen Knoten-HTTP-Dienst einrichten und dann MySQL konfigurieren. Nachdem ich das ORM-Modell etabliert hatte, stieß ich auf etwas Seltsames, als ich mit dem Schreiben von SQL-Anweisungen beginnen wollte, da mein Knoten in utf8 codiert war. Die Datenbank unseres Unternehmens verwendet jedoch die GBK-Kodierung, was zu einem Fehler führte, als ich die Datenabfrage durchführte und die Abfrage fehlschlug. Der Grund waren Kodierungsprobleme.
Dieses Problem ist auch sehr einfach, einfach transkodieren! ! !
Als ich anfing, die Transkodierungsmethode des Baidu-Knotens zu verwenden, stieß ich auf das Plugin iconv-jschardet und ging zu npm, um es auszuprobieren. Ich habe angefangen,
const iconv = require('iconv-jschardet'); SarchName = iconv.encode(SarchName, 'gbk');
zu verwenden, um die vom Frontend gesendeten Zeichen in GBK-Kodierung umzuwandeln, und war sehr zufrieden.
Das Ergebnis ist immer noch ein Fehler. Aufgrund dieses Fehlers habe ich einen Nachmittag damit verbracht, danach zu suchen. Ich weiß nicht, ob die Konvertierung erfolgreich war, daher habe ich unzählige Methoden ausprobiert, konnte dieses Codierungsproblem jedoch immer noch nicht lösen. Deshalb habe ich darüber nachgedacht, es mit SQL in Binärdateien zu konvertieren, um beim Abfragen beim Schreiben von PHP Fuzzy-Matching zu ermöglichen.
Also habe ich den SarchNamen eingegeben und es stellte sich heraus, dass es Obj war. Ich war sehr verwirrt und dachte, es sollte String sein. Also habe ich es ausgedruckt und gesehen, dass es ein Buffer war. Jetzt wurde mir klar, dass es besser ist, es nicht direkt in String zu konvertieren. Ich habe die Methode Buffer.toString() verwendet, aber es hat immer noch nicht funktioniert, und dann habe ich die Dokumentation durchgesehen. Ich fand heraus, dass es keine GBK-Kodierung gab, was große Kopfschmerzen bereitete.
Dann habe ich es mit ASCII versucht und festgestellt, dass es immer noch nicht funktioniert, also habe ich es mit Binärdatei versucht und es war in Ordnung.
** Die Ausführung der Fuzzy-Abfrage wurde problemlos abgeschlossen. Als die zurückgegebenen Daten gefunden wurden, waren sie immer noch in GBK codiert. Das ist ganz einfach! ! ! ! Konvertieren Sie es dann in utf8
Name=iconv.decode(name,'gbk')
und kehren Sie dann zurück und stellen Sie fest, dass es kein Problem gibt. Dann ist alles in Ordnung.
Nach einer Weile entdeckte jemand anderes einen Fehler und sagte, dass der Name der Person nicht vollständig angezeigt wurde! ! ! !
Infolgedessen tauchte dieses Symbol � in den Namen einiger Personen auf. . . . .
Baidu stellte fest, dass die Dekodierung unvollständig war und es derzeit keine Lösung gibt. . .
Am Ende hatte ich keine andere Wahl, als die Methode indexOf('�') zu verwenden, um die seltenen Zeichen in der Zeichenfolge abzurufen
Dann notieren Sie ihren Status und verwenden Sie PHP, um sie zu transkodieren.
Mit einem Wort, Grube! **
Ergänzung: Bei der GBK-Konvertierung von Node.js in utf8 können einige seltene Zeichen immer noch nicht konvertiert werden, was zu verstümmelten Zeichen führt. Es wird empfohlen, dass Bibliotheken mit GBK nicht zulassen, dass Node Dinge wie die chinesische Transkodierung durchführt und in eine andere Sprache wechselt.
Empfohlenes Lernen: „node.js Video-Tutorial“
Das obige ist der detaillierte Inhalt vonWas tun, wenn chinesische Knoten-utf8-Zeichen verstümmelt sind?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



Der nicht blockierende und ereignisgesteuerte Knotendienst hat den Vorteil eines geringen Speicherverbrauchs und eignet sich sehr gut für die Verarbeitung massiver Netzwerkanforderungen. Unter der Voraussetzung massiver Anfragen müssen Probleme im Zusammenhang mit der „Speicherkontrolle“ berücksichtigt werden. 1. Der Garbage-Collection-Mechanismus und die Speicherbeschränkungen von V8 Js wird von der Garbage-Collection-Maschine gesteuert

Dieser Artikel vermittelt Ihnen ein detailliertes Verständnis des Speichers und Garbage Collectors (GC) der NodeJS V8-Engine. Ich hoffe, er wird Ihnen hilfreich sein!

Die Auswahl eines Docker-Images für Node mag trivial erscheinen, aber die Größe und potenziellen Schwachstellen des Images können erhebliche Auswirkungen auf Ihren CI/CD-Prozess und Ihre Sicherheit haben. Wie wählen wir also das beste Node.js-Docker-Image aus?

UTF8-kodierte chinesische Zeichen belegen 3 Bytes. Bei der UTF-8-Kodierung entspricht ein chinesisches Zeichen drei Bytes und ein chinesisches Satzzeichen belegt drei Bytes, während bei der Unicode-Kodierung ein chinesisches Zeichen (einschließlich traditionellem Chinesisch) zwei Bytes entspricht. UTF-8 benötigt zur Kodierung jedes Zeichens nur 1 Byte. Für Latein, Griechisch, Kyrillisch und Hebräisch sind 2 Byte erforderlich Codierung.

Das Dateimodul ist eine Kapselung der zugrunde liegenden Dateioperationen, wie z. B. Lesen/Schreiben/Öffnen/Schließen/Löschen von Dateien, Hinzufügen usw. Das größte Merkmal des Dateimoduls besteht darin, dass alle Methoden zwei Versionen von **synchronem** und **bereitstellen. asynchron**, mit Methoden mit dem Suffix sync sind alle Synchronisationsmethoden, und diejenigen ohne sind alle heterogene Methoden.

Node 19 wurde offiziell veröffentlicht. Dieser Artikel wird Ihnen eine detaillierte Erklärung der 6 Hauptfunktionen von Node.js 19 geben. Ich hoffe, er wird Ihnen hilfreich sein!

Wie führt Node.js GC (Garbage Collection) durch? Der folgende Artikel führt Sie durch.

Die Ereignisschleife ist ein grundlegender Bestandteil von Node.js und ermöglicht die asynchrone Programmierung, indem sie sicherstellt, dass der Hauptthread nicht blockiert wird. Das Verständnis der Ereignisschleife ist für die Erstellung effizienter Anwendungen von entscheidender Bedeutung. Der folgende Artikel wird Ihnen ein detailliertes Verständnis der Ereignisschleife in Node vermitteln. Ich hoffe, er wird Ihnen hilfreich sein!
