Skip to content

.NET Core 中返回的消息乱码

.NET Core 服务发布到 Linux(Docker)之后,发现部分消息乱码。
在本地的 Linux 虚机(中文版)上是没有这个问题的。Docker 上使用的是不带中文语言包的。

本以为是环境的问题,就像 JDK 可以通过添加环境变量设置文件的编码格式一样(Java 调用.NET Service 接口返回 Json 中文乱码)。但 .NET Core 并没有找到对应的设置。
尝试在代码中明确的使用 UTF-8 对字符串编码仍然会乱码。

偶然的在使用 SourceTree 提交时的 diff 页面发现有部分文件的中文显示乱码,才想到可能是文件的编码格式导致的这个问题。
查看乱码消息所在的文件,确实是 ANSI 编码,改成 UTF-8 之后问题就顺利的解决了。