1.问题发生:
前两天利用 docker 上的 mysql 结合 lua 脚本进行数据查询时,总是中文乱码。一开始我以为是脚本的问题,然后在网上各种查询,诸如:
1.在查询之前,先调用db:query("SET NAMES utf8")
2.脚本头部:ngx.header.content_type="application/json;charset=utf8",本来我就写的这个,百度上各种说这个写法不对,有让改成 UTF-8 的,有让改成 utf-8 的;
还有说前面的 content_type 应该是 ngx.header['Content-Type'] 这种写法。
但是我试了,都没用,最后得出结论,与这些好像没多大关系,
正确的还是:
ngx.header.content_type="application/json;charset=utf8"
2.发现问题
打开 Navicat,做如下查询:
发现如上两个地方写的是 latin1,瞬间明白了为啥查出来的是一串 ???????
3.解决
利用如下命令设置相关属性的编码格式。
最后顺利的解决了问题。虽然各大博客的解决办法都不一定适应自己的情况,但是还是要多试一下,多实践才能得出结果。