2016-09-19 2 views
0

ich auf einer Website arbeite, die, bevor ich das gesamte Routing zu einem Node/Express/EJS App portiert hatten alle die Zeichencodierung als Shift_JIS (eine japanische Codierung, die nicht nativ vom Knoten unterstützt wird). Jetzt werden alle Seiten als UTF-8 gerendert. Auf der Website werden einige Dienste ausgeführt, die auf die Shift_JIS-Codierung angewiesen sind.Knoten + Express + EJS Zeichenkodierung Fragen (UTF-8 vs Shift_JIS)

Ich habe versucht, benutzerdefinierte Middleware zu zwingen, den Header für Vary: Accept-Encoding (obwohl ich nicht sicher bin, tat ich richtig), um die Codierung HTML zu Shift_JIS (dies funktioniert für andere Header und andere HTML-Attribute wie als Doctype), aber alles wird kontinuierlich als UTF-8 gerendert.

Ich habe einige der shivs gesehen, die Funktionalität für alternative Codierungen in Knoten hinzufügen, aber ich bin nicht sicher, wie ich sie in meiner Express App anwenden könnte.

würde ich ein minimales Arbeitsbeispiel liefern, aber ich denke, das Problem ist selbsterklärend und ich aus dem Projekt jeden Arbeitscode nicht zur Verfügung stellen kann.

Im Test: Ich habe eine Seite, die nicht UTF-8 in Shift_JIS Codierung gemacht -needs- werden. Ich habe einige Lösungen ausprobiert und eine Ziegelmauer getroffen.

Jede Hilfe wäre unglaublich dankbar. Dies blockiert wirklich die Entwicklung, und ich habe Erfahrung in vielen Bereichen, aber die Fremdcodierung gehört nicht dazu.

Antwort

1

Sie können möglicherweise Ihre eigene Middleware erstellen basierend auf https://www.npmjs.com/package/iconv-js konvertiert alle Ihre Ausgabe nach Shift-JIS oder erkennt etwas in der Anfrage und konvertiert nur Antworten auf bestimmte Anfragen an Shift-JIS.

Siehe https://coderwall.com/p/miq0iw/node-express-middleware-to-post-process-requests ein Beispiel für Ihre eigene Post-Processing-Middleware zu schaffen.

+0

Hey, das ist sehr weit weg von dem Problem, aber nach viel Versuch und Irrtum ist das etwas, was ich getan habe, egal im August. Ich habe das ziemlich inkrementell gemacht und viel gelernt, so dass jeder, der auf dieses Problem trifft, bknights genau die richtige Lösung hat – MikeJannino