簡體   English   中英

在golang HTTP FileServer的Content-Type標頭上設置'charset'屬性

[英]Setting the 'charset' property on the Content-Type header in the golang HTTP FileServer

測試golang網絡應用程序時出現問題。 在部署的版本中,nginx在應用程序的前面,並顯式設置charset utf8; 以便所有文本內容類型都附加一個字符集聲明。

在測試中,我直接打了golang應用程序,這里的內容類型沒有字符集。 嘗試提供類似d3這樣的庫時,這會導致問題:

var ε = 1e-6, ε2 = ε * ε, π = Math.PI, τ = 2 * π, τε = τ - ε, halfπ = π / 2, d3_radians = π / 180, d3_degrees = 180 / π;

由於golang未指定字符集,因此這些字符在chrome中呈現為:

var ε = 1e-6, ε2 = ε * ε....

使golang http服務器在HTTP標頭上輸出charset = utf8聲明的最佳方法是什么?

FileServer調用mime.TypeByExtension以獲取內容類型。 如果沒有為擴展名注冊任何類型,則FileServer調用http.DetectContentType從文件的內容中猜測類型。

如果文本/內容類型未指定字符集參數,則mime包會自動將“ charset = utf-8”參數添加到內容類型。

要調試此問題,請檢查系統mime.types文件是否為文件擴展名指定了內容類型,並且charset參數為'charset = utf-8'或未設置charset參數。

如果系統mime.types條目丟失或不正確,請調用mime.AddExtensionType以覆蓋系統設置。 可以在提供任何內容之前調用一次。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM