解决Linux下中文变问号/乱码问题,解决Java等程序无法保存中文文件名、中文文件。

发布时间 - 2025-07-11 00:00:00    点击率:

不管是开发环境,还是生成环境,linux的环境配置都很重要;大部分的linux操作系统(如:大部分的debian系统),默认都只有或者只激活了en_us.utf-8,如果只有en_us.utf-8的语言环境,可能就无法显示中文了。

所以,最好提前设置好语言环境。

头图不能少!
问题分析

Linux下Java输出带中文的文件,出现问号或者中文乱码问题:

中文乱码问题

解决方法很简单,大概分为两个步骤:安装和设置字库、设置语言环境变量。最终效果:

中文显示成功

需要注意:

已经由Java等程序输出的文件(???文件名),因为是生成文件时,缺少字符集;添加和更改中文后,还是显示???。一些教程会让你直接修改/etc/default/locale,但是个人不建议修改这个文件为zh。更建议按本文方法,修改单用户语言。本次使用PHP中文网轻量应用服务器的Debian10进行实机演示嗷。
本次使用的服务器
安装字库

首先,看看系统有没有中文字库:

代码语言:txt复制
locale -a | grep zh_CN
存在中文字库

如果你没有中文字库,需要先安装中文字库支持。

安装中文字体

在安装和设置中文字库前,我们先安装一下中文字体。安装中文字体很简单:

代码语言:shell复制
# Debiansudo apt install fonts-wqy-zenhei# CentOSsudo yum install kde-l10n-Chinese

一般上述字体就足够使用,如果你在后文配置后,依旧无法使用,可以尝试安装全部wqy字体:

代码语言:shell复制
# Debiansudo apt install xfonts-intl-chinesesudo apt install wqy\*
安装字体
激活中文字库

之后,激活中文字体,CentOS一般不需要激活中文字库:

代码语言:shell复制
# Debiansudo apt install localessudo dpkg-reconfigure locales

之后,就会进行语言选择:

语言选择

通过使用方向键来浏览列表,并使用空格来勾选激活区域设置。这里建议勾选en_US.UTF-8zh_CN. UTF-8 URF-8 等:

勾选内容

之后,回车:

选择默认系统语言,还是推荐还是用英文:

选择en_US.UTF-8

之后,再回车。系统会自动开始配置:

自动配置完成
设置中文环境

现在,我们就可以设置中文环境了。

也很简单,根据你当前的Shell,设置环境变量,查看当前Shell:

代码语言:txt复制
echo $SHELL
查看当前Shell

可以看到,我的Shell是zsh,你们的可能是/bin/bash,如果是和我一样,那么环境变量就是:~/.zshrc。如果是/bin/bash,那么环境变量就是:~/.bashrc

代码语言:txt复制
# 编辑环境变量vim ~/.zshrc
环境变量

之后,在文末追加:

代码语言:txt复制
# LANGexport LANG=zh_CN.UTF-8export LC_ALL=zh_CN.UTF-8export LC_LANG=zh_CN.UTF-8
文末追加

最后,保存并退出后。重载环境变量:

代码语言:shell复制
source ~/.zshrc

现在,就可以查看效果了。

最终效果

现在,我们的Java 程序 ,写入文件名时候,就可以写中文了:

写中文

但是,需要注意:

已经运行的Java程序,需要重新运行。一些虚拟终端,如:screen;需要关闭后重新打开。

如果还是没有生效,可以重启Linux。


# linux  # centos  # 操作系统  # 中文乱码  # 解决方法  # linux操作系统  # Java  # php  # bash  # default  # debian  # 就可以  # 勾选  # 很简单  # 需要注意  # 先安装  # 就会  # 是个  # 如果你  # 不需要  # 和我 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: Laravel distinct去重查询_Laravel Eloquent去重方法  如何在服务器上配置二级域名建站?  *服务器网站为何频现安全漏洞?  怎么制作一个起泡网,水泡粪全漏粪育肥舍冬季氨气超过25ppm,可以有哪些措施降低舍内氨气水平?  如何破解联通资金短缺导致的基站建设难题?  如何彻底卸载建站之星软件?  详解Android中Activity的四大启动模式实验简述  如何在阿里云域名上完成建站全流程?  胶州企业网站制作公司,青岛石头网络科技有限公司怎么样?  Laravel 419 page expired怎么解决_Laravel CSRF令牌过期处理  Laravel广播系统如何实现实时通信_Laravel Reverb与WebSockets实战教程  Laravel Debugbar怎么安装_Laravel调试工具栏配置指南  如何实现建站之星域名转发设置?  Laravel怎么进行数据库事务处理_Laravel DB Facade事务操作确保数据一致性  Laravel如何清理系统缓存命令_Laravel清除路由配置及视图缓存的方法【总结】  php在windows下怎么调试_phpwindows环境调试操作说明【操作】  Laravel如何记录自定义日志?(Log频道配置)  Laravel与Inertia.js怎么结合_使用Laravel和Inertia构建现代单页应用  Laravel项目结构怎么组织_大型Laravel应用的最佳目录结构实践  如何在沈阳梯子盘古建站优化SEO排名与功能模块?  如何在景安服务器上快速搭建个人网站?  Laravel如何为API生成Swagger或OpenAPI文档  Laravel怎么实现支付功能_Laravel集成支付宝微信支付  教你用AI润色文章,让你的文字表达更专业  历史网站制作软件,华为如何找回被删除的网站?  Laravel如何从数据库删除数据_Laravel destroy和delete方法区别  如何用搬瓦工VPS快速搭建个人网站?  Laravel怎么配置.env环境变量_Laravel生产环境敏感数据保护与读取【方法】  如何实现javascript表单验证_正则表达式有哪些实用技巧  在Oracle关闭情况下如何修改spfile的参数  如何快速搭建二级域名独立网站?  极客网站有哪些,DoNews、36氪、爱范儿、虎嗅、雷锋网、极客公园这些互联网媒体网站有什么差异?  Android GridView 滑动条设置一直显示状态(推荐)  高端企业智能建站程序:SEO优化与响应式模板定制开发  Laravel如何处理文件上传_Laravel Storage门面实现文件存储与管理  浅述节点的创建及常见功能的实现  Edge浏览器如何截图和滚动截图_微软Edge网页捕获功能使用教程【技巧】  实例解析Array和String方法  Laravel如何实现多语言支持_Laravel本地化与国际化(i18n)配置教程  如何用PHP快速搭建CMS系统?  佛山企业网站制作公司有哪些,沟通100网上服务官网?  三星、SK海力士获美批准:可向中国出口芯片制造设备  详解CentOS6.5 安装 MySQL5.1.71的方法  如何在阿里云服务器自主搭建网站?  晋江文学城电脑版官网 晋江文学城网页版直接进入  HTML透明颜色代码在Angular里怎么设置_Angular透明颜色使用指南【详解】  如何快速使用云服务器搭建个人网站?  Laravel怎么使用Intervention Image库处理图片上传和缩放  JavaScript 输出显示内容(document.write、alert、innerHTML、console.log)  如何在云主机上快速搭建多站点网站?