2016-09-19 35 views
0

我正在開發一個網站,在將所有路由移植到Node/Express/EJS應用程序之前,將所有字符編碼都作爲Shift_JIS (日本編碼本身不受節點支持)。現在,所有頁面都呈現爲UTF-8;有一些在網站上運行的服務依賴於Shift_JIS編碼。節點+ Express + EJS字符編碼問題(UTF-8與Shift_JIS)

我試圖製作自定義中間件來強制Vary的頭部:Accept-Encoding(儘管我不確定我是否這樣做了),將編碼html更改爲Shift_JIS(這適用於其他頭文件和其他HTML屬性,例如作爲Doctype),但一切都不斷呈現爲UTF-8。

我已經看到了一些爲節點中的替代編碼添加功能的shivs,但我不知道如何將它們應用到我的Express應用程序。

我會提供一個最簡單的工作示例,但我認爲這個問題是不言自明的,我無法從該項目提供任何工作代碼。

評論:我有一個網站,需要在Shift_JIS編碼呈現,而不是UTF-8。我嘗試了一些解決方案並撞上了一堵磚牆。

任何幫助將令人難以置信的讚賞。這實際上阻礙了開發,並且我在許多領域都有經驗,但國外編碼不是其中之一。

回答

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

嘿,這個問題已經非常遙遠了,但經過多次試驗和錯誤之後,無論在八月份,我都會​​這樣做。我做得很好,學到了很多,所以遇到這個問題的任何人,bknights都有完全正確的解決方案 – MikeJannino