簡體   English   中英

encodeURIComponent 和 content-type: 'charset: utf-8'

[英]encodeURIComponent and content-type: 'charset: utf-8'

我正在構建一個react應用程序,並使用Node (帶有 Express)作為代理服務器。 我將數據從 react app 發送到 node-express,然后在 Node 中我使用該數據來形成 URI 並向另一台服務器發出請求。

我的問題是:當我將包含希臘字符的數據發送到 Node 時,難道'content-type': 'charset: utf-8'就足夠了嗎? 例如,我向 Node 發出發布請求(使用 Fetch),然后使用我已經提到的標頭發送代碼“ΠΕ0001”。 為什么我收到錯誤“路徑包含未轉義的字符”? 當我使用encodeURIComponent它確實有效,但為什么 'charset: utf-8' 還不夠?

僅僅設置標題'content-type': 'charset: utf-8'是不夠的。 本質上,使用此 Header 只是告訴服務器(在本例中為 Node),您發送的數據采用utf-8格式,無論如何它都應該期待。

但是,您的字符串采用 UTF-16 格式,因為字母Π需要表示兩個字節。 .

您可以在此處閱讀有關字符編碼的更多信息

因此,您首先需要encodeURIComponent 在我們的例子中, Π然后表示為%CE%A0 ,這是它在 UTF-8 中的字節表示。

  1. 使用此方法 JSON.stringify() 將數據轉換為 json 對象。
  2. 然后將該 json 對象傳遞給 encodeURIComponent()
  3. 然后調用fetch方法

暫無
暫無

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

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