今天在测试node.js时,response出来的中文变成乱码,在网络上找了一些文件及自己最后解决方式,记录一下。

我的情形是这样的,我在Windows上的docker有跑一个node.js,中文显示是正常的;我在Cloud上跑的node.js,中文显示是乱码。但是程式码内容是一样的。

网络上有提到文件需要是utf-8的格式,所以我在Cloud上检查我的app.js档:

文件是utf-8,内容也是utf-8,所以原则上应该是没有问题的。

另一个需要注意的是header,所以我在app.js上加上下列:

但是response的中文还是乱码,最后发现是我的ssh client的问题。

因为Cloud上没有办法输入中文,所以我是先在Windows的vs code编辑好后再复制程式码贴到Cloud上。

我使用的是xshell来连线Cloud,需要在“档案”->“内容”,找到“终端机”的设定页,将编码改为UTF-8

这样贴上程式码时才会是UTF-8,重启cloud上的node.js后中文就可以正常显示了。