为什么Node.js V6无法解析法语单词的url?

时间:2017-05-10 03:22:54

标签: javascript node.js express urlencode

我遇到一个问题,这个带有法语单词的网址'localhost:4020/share/Fr?chars=ECYCÉDN'无法在Node V6.10.0中解析,但可以在Node V0.10.42下正确解析。

以下是我的代码的详细信息

  • Express

    的中间件
    app.use bodyParser.urlencoded({ extended: false })
    app.use bodyParser.json({ limit: '20mb' })
    app.use bodyParser.urlencoded({ limit: '20mb', extended: false })
    
  • 并在上面的url路由器中输出chars

    router = express.Router()
    router.get '/share/:lang', (req, res, next) ->
         console.log(req.query.chars)
    

我使用curl 'localhost:4020/share/Fr?chars=ECYCÉDN'测试此服务器,结果为

  • 节点v0.10.42

    {"chars":"ECYCÉDN"}

  • Node v6.10.0

    {"chars":"ECYCÃ DN"}

快递版本为4.15.2

我想知道为什么在Node V6.10.0下无法正确解析这个法语单词?

我认为这可能是字符编码问题。但是,我尝试使用querystringquerystring.unescapequerystring.escape,但效果不佳。

更新

当我尝试在路由器console.log(JSON.stringify(req.query))中输出'/share/:lang'时,结果为{"chars":"ECYCÃ DN"}chars的长度为8

0 个答案:

没有答案