现在已经搜索了一段时间,我相信我的问题可能与其他人的问题没有直接关系。我在表单中使用unicode字符(在客户端使用angularjs),并注意到UTF8字符串没有正确显示在服务器日志上。因此,我决定在提交到服务器(nodejs / express4)之前对客户端的所有字符串进行base64.encode。 JSON数据正确地到达服务器,但是当我尝试使用缓冲区将它从base64转换为UTF8时,我得到不同的符号。我在http://www.base64decode.org/上测试了字符串,它们解码得很好。任何人都可以提出我可能做错的建议吗?
示例char:σ,base64 =“z4M =”。 在服务器上,此行将所有JSON值解码为UTF8:
Object.keys(req.body).forEach(function(key){req.body [key] = new Buffer(req.body [key],'base64')。toString('utf8');}) ;
“σ”字符在服务器上变为“Ο”。有人可以帮忙吗?
答案 0 :(得分:0)
因此我决定在提交到服务器(nodejs / express4)之前对客户端的所有字符串进行base64.encode编码。
没必要,真的。可能你用utf-8 json做错了,现在也错了。 尝试调试它。
注意到UTF8字符串没有正确显示在服务器日志上。
他们展示了什么? 在你的操作系统上? 您是否使用十六进制查看器查看日志?
对我而言,这看起来像一个典型的"我有一个问题X,认为我的解决方案有一半,但我遇到了一个子问题Y"。回到X并以正确的方式攻击它(没有base64)。