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

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

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

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

问题分析

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

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

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

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

需要注意:

立即学习“Java免费学习笔记(深入)”;

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

解决Linux下中文变问号/乱码问题,解决Java等程序无法保存中文文件名、中文文件。本次使用的服务器

安装字库

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

代码语言:txt复制

locale -a | grep zh_CN
解决Linux下中文变问号/乱码问题,解决Java等程序无法保存中文文件名、中文文件。存在中文字库

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

安装中文字体

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

代码语言:shell复制

# Debiansudo apt install fonts-wqy-zenhei# CentOSsudo yum install kde-l10n-Chinese

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

代码语言:shell复制

# Debiansudo apt install xfonts-intl-chinesesudo apt install wqy*
解决Linux下中文变问号/乱码问题,解决Java等程序无法保存中文文件名、中文文件。安装字体

激活中文字库

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

代码语言:shell复制

# Debiansudo apt install localessudo dpkg-reconfigure locales

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

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

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

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

之后,回车:

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

解决Linux下中文变问号/乱码问题,解决Java等程序无法保存中文文件名、中文文件。选择en_US.UTF-8

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

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

设置中文环境

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

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

代码语言:txt复制

echo $SHELL
解决Linux下中文变问号/乱码问题,解决Java等程序无法保存中文文件名、中文文件。查看当前Shell

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

代码语言:txt复制

# 编辑环境变量vim ~/.zshrc
解决Linux下中文变问号/乱码问题,解决Java等程序无法保存中文文件名、中文文件。环境变量

之后,在文末追加:

代码语言:txt复制

# LANGexport LANG=zh_CN.UTF-8export LC_ALL=zh_CN.UTF-8export LC_LANG=zh_CN.UTF-8
解决Linux下中文变问号/乱码问题,解决Java等程序无法保存中文文件名、中文文件。文末追加

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

代码语言:shell复制

source ~/.zshrc

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

最终效果

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

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

但是,需要注意:

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

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

以上就是解决Linux下中文变问号/乱码问题,解决Java等程序无法保存中文文件名、中文文件。的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/30738.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
牧场物语风之繁华集市各地区解锁条件及功能介绍 各地区怎么解锁
上一篇 2025年11月3日 19:15:49
通过微信位置定位,让您的店铺名字在市场中脱颖而出(如何利用微信位置功能提升店铺曝光度和客流量)
下一篇 2025年11月3日 19:17:44

相关推荐

  • 比特币新手教程 比特币交易平台有哪些

    比特币是一种去中心化的数字货币,基于区块链技术实现点对点交易,具有匿名性、有限发行和不可篡改等特点;新手可通过交易所购买,P2P交易获得比特币,常用平台包括Binance、OKX和Huobi;交易流程包括注册账户、实名认证、绑定支付方式、充值法币并下单购买,可选择市价单或限价单;比特币存储方式有交易…

    2026年5月10日
    000
  • 修复点击时按钮抖动:CSS垂直对齐实践

    本文探讨了在Web开发中,交互式按钮(如播放/暂停按钮)在点击时发生意外垂直位移的问题。通过分析CSS样式变化对元素布局的影响,我们发现这是由于按钮不同状态下的边框样式和内边距改变,以及默认的垂直对齐行为共同作用所致。核心解决方案是利用CSS的vertical-align属性,将其设置为middle…

    2026年5月10日
    000
  • 网站标题关键词更新后,搜索引擎为何仍显示旧标题?

    网站标题更新后,搜索引擎为何显示旧标题? 网站SEO优化中,站长常修改网站标题关键词,期望搜索结果显示自定义标题。然而,即使更新标签、meta keywords、meta description和结构化数据中的name属性后,搜索结果仍显示旧标题,这令人费解。本文将对此进行解释。 问题:站长修改了网…

    2026年5月10日
    100
  • Python命令怎样使用profile分析脚本性能 Python命令性能分析的基础教程

    使用Python的cProfile模块分析脚本性能最直接的方式是通过命令行执行python -m cProfile your_script.py,它会输出每个函数的调用次数、总耗时、累积耗时等关键指标,帮助定位性能瓶颈;为进一步分析,可将结果保存为文件python -m cProfile -o ou…

    2026年5月10日
    000
  • JavaScript 闭包:理解闭包原理与内存泄漏问题

    闭包是函数访问其外部作用域变量的能力,即使外部函数已执行完毕。如 inner 函数引用 outer 中的 count,形成闭包,使变量持久存在。闭包本身无害,但可能因延长变量生命周期导致内存泄漏,例如事件监听器引用大对象时。若未及时清理 DOM 事件或定时器,闭包会阻止垃圾回收,造成内存占用过高。解…

    2026年5月10日
    000
  • c++如何实现UDP通信_c++基于UDP的网络通信示例

    UDP通信基于套接字实现,适用于实时性要求高的场景。1. 流程包括创建套接字、绑定地址(接收方)、发送(sendto)与接收(recvfrom)数据、关闭套接字;2. 服务端监听指定端口,接收客户端消息并回传;3. 客户端发送消息至服务端并接收响应;4. 跨平台需处理Winsock初始化与库链接,编…

    2026年5月10日
    000
  • 谷歌浏览器如何截图 谷歌浏览器页面截图技巧

    谷歌浏览器如何截图 谷歌浏览器页面截图技巧谷歌浏览器如何截图 谷歌浏览器页面截图技巧谷歌浏览器如何截图 谷歌浏览器页面截图技巧谷歌浏览器如何截图 谷歌浏览器页面截图技巧

    使用谷歌浏览器的开发者工具截图步骤:1. 按ctrl+shift+i(windows/linux)或cmd+option+i(mac)打开开发者工具。2. 点击右上角三个点,选择”更多工具”,再选择”截图”。3. 选择截取整个页面。推荐的谷歌浏览器扩展…

    2026年5月10日 用户投稿
    100
  • JavaScript函数中插入加载动画(Spinner)的正确方法

    本文旨在解决在JavaScript函数中插入加载动画(Spinner)时遇到的异步问题。通过引入async/await和Promise.all,确保在数据处理完成前后正确显示和隐藏加载动画,提升用户体验。我们将提供两种实现方案,并详细解释其原理和优势。 在Web开发中,当执行耗时操作时,显示加载动画…

    2026年5月10日
    000
  • Golang使用Protobuf定义接口与消息格式

    Protobuf通过字段编号实现兼容性,新增字段可忽略、删除字段可保留编号,确保新旧版本互操作,支持服务独立演进。 在Golang项目中,利用Protobuf定义接口和消息格式,本质上是为服务间通信构建了一套高效、类型安全且跨语言的契约。它让数据结构清晰可见,RPC调用标准化,极大地简化了分布式系统…

    2026年5月10日
    000
  • pycharm解析器怎么添加 解析器添加详细流程

    在pycharm中添加解析器的步骤包括:1) 打开pycharm并进入设置,2) 选择project interpreter,3) 点击齿轮图标并选择add,4) 选择解析器类型并配置路径,5) 点击ok完成添加。添加解析器后,选择合适的类型和版本,配置环境变量,并利用解析器的功能提高开发效率。 在…

    2026年5月10日
    000
  • 硬盘数据被误删除怎么办?教你快速找回删除的文件!

    硬盘数据被误删除,别慌!恢复数据并非不可能,关键在于你接下来的操作。立刻停止对该硬盘的任何写入操作,然后尝试使用专业的数据恢复软件。 解决方案 首先,数据恢复的原理是,删除文件后,操作系统只是将文件占用的空间标记为“可覆盖”,但文件本身的数据可能还存在于硬盘上。所以,避免新的数据写入覆盖掉旧数据,是…

    2026年5月10日
    000
  • Python官网用户调查的参与方式_Python官网反馈提交详细教程

    答案是通过访问Python官网新闻页面、邮件邀请链接或GitHub仓库提交反馈。具体为:访问官网查找用户调查公告,或点击邮件中的专属链接参与,在GitHub的cpython仓库提交技术建议,并注意如实填写问卷与保护隐私。 如果您希望参与Python官网的用户调查并提交反馈,可以通过官方指定的渠道完成…

    2026年5月10日
    000
  • JavaScript Electron桌面应用

    答案:使用JavaScript开发%ignore_a_1%桌面应用需结合Web技术与Node.js,通过主进程管理窗口、渲染进程展示界面,并利用IPC通信,调用系统功能如文件对话框,最后用electron-builder打包发布,注意安全与进程职责分离。 用JavaScript开发Electron桌…

    2026年5月10日
    000
  • Go语言连接外部MySQL数据库:DSN配置与常见错误解析

    本文详细阐述了go语言使用`go-sql-driver/mysql`驱动连接外部mysql数据库的正确方法。重点介绍了数据源名称(dsn)的规范格式,特别是主机地址部分的配置,以避免常见的“getaddrinfow: the specified class was not found.”等网络解析错…

    2026年5月10日
    000
  • Linux文件系统iostat命令使用技巧

    Linux文件系统iostat命令使用技巧Linux文件系统iostat命令使用技巧Linux文件系统iostat命令使用技巧Linux文件系统iostat命令使用技巧

    iostat是Linux系统中用于监控I/O设备负载的关键工具,能分析磁盘性能并识别瓶颈。默认输出包括CPU使用率和设备I/O统计,分为系统启动以来的平均值和当前采样周期数据。核心指标有:%util反映设备利用率,持续接近100%可能表示I/O瓶颈;await为平均I/O等待时间,过高说明响应变慢;…

    2026年5月10日 用户投稿
    000
  • c++中sizeof运算符的用法和常见陷阱 _c++ sizeof使用技巧及陷阱解析

    sizeof运算符在编译时计算类型或对象的字节大小,返回size_t类型,常用于获取数据大小、数组元素个数及内存操作;但存在数组传参退化为指针导致失效、对指针无法获知动态内存大小、表达式不求值、结构体因对齐产生填充等常见陷阱;需结合模板、显式传参、对齐控制等方式规避问题,提升代码可移植性和安全性。 …

    2026年5月10日
    000
  • 如何测试html5编码_测试HTML5页面编码兼容性方法【编码测试】

    HTML5页面编码兼容性测试需五步:一查meta charset是否正确且前置;二验HTTP响应头Content-Type charset是否为utf-8;三用file或chardet工具探测实际编码;四跨浏览器测试URL参数中中文、Emoji解析;五通过W3C验证服务检查编码声明与字节一致性。 如…

    2026年5月10日
    100
  • Highcharts加载大量散点图失败,如何解决?

    highcharts 加载大批量散点图界面加载失败的原因: highcharts 库有一个性能阈值(turbothreshold),用于确定何时使用优化技术来提高图表性能。对于大量数据,默认阈值为 1000。当数据量超过阈值时,highcharts 将切换到不同的渲染模式,该模式可能无法正确加载散点…

    2026年5月10日
    000
  • 后缀php怎么打开_php文件打开方式与运行环境搭建指南

    要打开PHP文件需根据用途选择方式:查看代码可用文本编辑器或IDE,运行则需服务器环境。推荐新手使用XAMPP、WAMP等集成环境,将文件放入htdocs目录后访问localhost;开发者可利用PHP内置服务器,命令行执行php -S localhost:8000运行;高级用户可手动配置Apach…

    2026年5月10日
    000
  • php源码怎么运行手机_php源码手机运行环境搭建步骤【教程】

    可在手机上通过特定工具运行PHP源码。首先选择支持PHP的移动应用,安卓用户可安装UserLAnd或KSWEB,iOS用户可尝试iSH Shell或a-Shell;然后配置本地服务器环境,启动HTTP和PHP服务,将PHP文件放入指定根目录;接着可通过Termux搭建完整开发环境,更新包列表并安装P…

    2026年5月10日
    200

发表回复

登录后才能评论
关注微信