2016-09-19 10 views
0

私はNode/Express/EJSアプリケーションにすべてのルーティングを移植する前に、すべての文字エンコーディングをShift_JIS (ノードによってネイティブにサポートされていない日本語エンコード)。今、すべてのページはUTF-8としてレンダリングされています。 Shift_JISエンコーディングに依存しているWebサイト上で実行されるサービスがいくつかあります。Node + Express + EJS文字エンコーディングの問題(UTF-8とShift_JIS)

私はVary:Accept-Encodingのヘッダーを強制的に使用するようにカスタムミドルウェアを作ってみましたが(これは正しいとは確信していませんが)、エンコードhtmlをShift_JISに変更しています(これは他のヘッダーやDoctypeとして)、すべてが継続的にUTF-8としてレンダリングされます。

ノードの代替エンコーディングの機能を追加しているシブがいくつか見受けられましたが、Expressアプリケーションにどのように適用できるかわかりません。

私は最小限の作業例を提供しますが、問題はわかりやすく、プロジェクトの作業コードを提供できません。

レビュー中:私はUTF-8ではなくShift_JISエンコーディングでレンダリングされる必要のあるサイトを持っています。私はいくつかのソリューションを試して、レンガの壁に当たった。

非常に助かります。これは本当に開発を妨げていますが、私は多くの分野で経験がありますが、外国のエンコーディングはその一つではありません。

答えて

1

https://www.npmjs.com/package/iconv-jsに基づいて独自のミドルウェアを作成することができます。すべての出力をShift-JISに変換するか、要求内の何かを検出し、Shift-JISへの特定の要求に対する応答のみを変換します。

独自の後処理ミドルウェアを作成する例については、https://coderwall.com/p/miq0iw/node-express-middleware-to-post-process-requestsを参照してください。

+0

これは問題から非常に遠く離れていますが、多くの試行錯誤の末、これは8月に関係なく終了しました。私はこれを少しずつ作成し、多くのことを学んだので、誰もがこの問題に遭遇したので、bknightsは正確な正しい解決策を持っています – MikeJannino

関連する問題