Docker容器中文亂碼(修改docker容器編碼格式)的解決方案_docker

來源:互聯網
上載者:User

前台上傳檔案到伺服器後,伺服器返回給前台的檔案清單中出現中文亂碼,所有的中文檔案名稱全部變成?,英文檔案名稱則正常顯示。

  問題經過定位,發現後台代碼的multipartfile類在執行transterto的方法時就發生了此異常,然而設定檔集中的multipartResolver以及encodingFilter均已經設定成了UTF-8,排除代碼異常。kubectl exec進入到docker容器中進行查看時發現,檔案在容器中也是中文檔案名稱顯示異常。查看docker容器編碼格式:執行locale命令;可以看到當前編碼格式為POSIX,而這種編碼格式不支援中文

  解決辦法:locale -a查看容器所有語言環境

  C.UTF-8可以支援中文,只需要把容器編碼設定為C.UTF-8即可

    1.臨時修改:

       locale
       locale -a
       LANG=C.UTF-8  (有的是zh_CN.UTF-8,不過我在本地沒發現這種編碼)
       source /etc/profile

    2.永久修改:修改Dockerfile

      在Dockerfile中添加一行

      ENV LANG C.UTF-8

      重新製作docker鏡像,docker run -ti [鏡像] 進入容器後執行locale發現編碼格式已經被修改為C.UTF-8,之前出現的中文檔案名稱亂碼問題也沒有了。

以上所述是小編給大家介紹的Docker容器中文亂碼(修改docker容器編碼格式)的解決方案,希望對大家有所協助,如果大家有任何疑問請給我留言,小編會及時回複大家的。在此也非常感謝大家對雲棲社區網站的支援!

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.