ngx_lua在传递中文的时候出现乱码,设置utf-8还是无法解决

发布于 2021-11-25 17:57:19 字数 513 浏览 885 评论 6

为了提高性能,我用openresty服务器的lua模块,用lua重写一些php接口,但是传递给手机端显示的是乱码

lua输出的代码段:

local request_time = ngx.now() - begin_time
ngx.header.content_type="application/json"
--  ngx.header['Content-Type']="text/html;charset=UTF-8"
ngx.header["X-Server-By"] = 'server by surjur'
ngx.header["Server"] = 'nginx'
ngx.header["X-Server-End"] = request_time
ngx.say(json.encode(data))
ngx.exit(ngx.HTTP_OK)



如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(6

岁月打碎记忆 2021-11-29 20:35:58

在mysql配置文件中设置字符集:

如/etc/mysql/my.cnf

[mysqld]节点增加:

character-set-server=utf8
collation-server=utf8_general_ci

柠檬 2021-11-29 06:29:44

在 server 块下
 charset utf-8;

囚你心 2021-11-29 03:41:19

同问,在线等

无法言说的痛 2021-11-29 03:11:45

你这种方式我之前试过,不行 后来我用ngx.header.content_type="application/json;charset=UTF-8"还是不行 最后使用 ngx.header.content_type="application/json;charset=utf8" 这个方式是可以的

岁月打碎记忆 2021-11-29 00:08:13

ngx.header.content_type="application/json;charset=utf8" 这个是正解,感谢分享

落墨 2021-11-28 12:09:28

因该是你的data读取时就乱码了吧。

ngx.header['Content-Type']="text/html;charset=UTF-8"

或者 json.encode(data) 无关。

搜索一个,他是由于mysql connect连接配置编码的。

https://github.com/openresty/lua-resty-mysql/issues/20

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文