本篇文章給大家分享的是有關(guān)Docker容器中出現(xiàn)中文亂碼如何解決,小編覺得挺實用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。
我們是于2013年開始的成都網(wǎng)站建設(shè)公司,提供網(wǎng)站建設(shè),電商網(wǎng)站設(shè)計開發(fā),外貿(mào)網(wǎng)站制作,響應(yīng)式網(wǎng)頁設(shè)計,微信小程序開發(fā)、等服務(wù)。為客戶創(chuàng)造有價值的品牌營銷體驗,讓互聯(lián)網(wǎng)提升企業(yè)的競爭力!
前臺上傳文件到服務(wù)器后,服務(wù)器返回給前臺的文件列表中出現(xiàn)中文亂碼,所有的中文文件名全部變成?,英文文件名則正常顯示。
問題經(jīng)過定位,發(fā)現(xiàn)后臺代碼的multipartfile類在執(zhí)行transterto的方法時就發(fā)生了此異常,然而配置文件集中的multipartResolver以及encodingFilter均已經(jīng)設(shè)置成了UTF-8,排除代碼異常。kubectl exec進(jìn)入到docker容器中進(jìn)行查看時發(fā)現(xiàn),文件在容器中也是中文文件名顯示異常。查看docker容器編碼格式:執(zhí)行l(wèi)ocale命令;可以看到當(dāng)前編碼格式為POSIX,而這種編碼格式不支持中文
解決辦法:locale -a查看容器所有語言環(huán)境
C.UTF-8可以支持中文,只需要把容器編碼設(shè)置為C.UTF-8即可
1.臨時修改:
locale
locale -a
LANG=C.UTF-8 (有的是zh_CN.UTF-8,不過我在本地沒發(fā)現(xiàn)這種編碼)
source /etc/profile
2.永久修改:修改Dockerfile
在Dockerfile中添加一行
ENV LANG C.UTF-8
重新制作docker鏡像,docker run -ti [鏡像] 進(jìn)入容器后執(zhí)行l(wèi)ocale發(fā)現(xiàn)編碼格式已經(jīng)被修改為C.UTF-8,之前出現(xiàn)的中文文件名亂碼問題也沒有了。
以上就是Docker容器中出現(xiàn)中文亂碼如何解決,小編相信有部分知識點可能是我們?nèi)粘9ぷ鲿姷交蛴玫降?。希望你能通過這篇文章學(xué)到更多知識。更多詳情敬請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。
原文鏈接:http://www.cnblogs.com/z-belief/archive/2016/12/09/6148463.html