首页 文章

Node.js错误的UTF8字符串表示,即使字节码似乎正确

提问于
浏览
0

经过一段时间的搜索,我相信我的问题可能与其他人的问题没有直接关系 . 我在表单中使用unicode字符(对于客户端使用angularjs)并注意到UTF8字符串没有得到不同的符号't display on the server logs properly. Thus I decided to base64.encode all strings on the client side before submitting to the server (nodejs/express4). The JSON data arrives properly to the server, but when I try to convert it from base64 to UTF8 using a buffer I' . 我测试了http://www.base64decode.org/上的字符串,它们解码得很好 . 任何人都可以建议我可能做错了吗?

示例char:σ,base64 =“z4M =” . 在服务器上,此行将所有JSON值解码为UTF8:

Object.keys(req.body).forEach(功能(键){req.body [键] =新缓冲液(req.body [键], '的base64')的toString( 'UTF8');});

并且“σ”字符在服务器上变为“Ο” . 有人可以帮忙吗?

1 回答

  • 0

    因此,我决定在提交到服务器(nodejs / express4)之前对客户端的所有字符串进行base64.encode .

    没必要,真的 . 可能你用utf-8 json做错了,现在也错了 . 尝试调试 .

    注意到UTF8字符串没有正确显示在服务器日志上 .

    他们展示了什么?在你的操作系统上?你是否用十六进制查看器查看日志?

    对我来说,这看起来像一个典型的“我有一个问题X,认为我的解决方案的一半,但我遇到了一个子问题Y” . 回到X并以正确的方式攻击它(没有base64) .

相关问题