Linux下的中文乱码问题

技术 · 2023-01-11

起因

最近在论坛里看到有人部署的小说网站,感觉界面还挺好看,联想到之前DP家的100G硬盘的VPS,本来部署的图床,可惜不怎么用,就想折腾弄成小说站,话说也不能浪费了之前下载的15G的小说是吧。

乱码问题

本身用的是Java写的,就一个jar包很简单,直接放到VPS上启动,但是访问的时候总是提示:malformed input or input contains unmappable characters,后面跟着一个路径,一眼看上去路径最后的图片名都是????.jpg,很明显是编码问题,怎么解决呢?因为大部分的VPS用的都是debian的系统,于是查了一下,说是要配置中文,于是通过dpkg-reconfigure locales命令重新配置,并且默认选用zh_CN.UTF-8,但是依然不起作用,看了一下bashrc的配置,发现原来为了登录的时候不提示错误,配置的export LAN=C,改为zh_CN.UTF-8依然不起作用,为此还重启了一次。后来看到可以通过配置java的启动环境变量来配置

java -Dfile.encoding="UTF-8" -Dsun.jnu.encoding="UTF-8" -jar xx.jar

启动的时候果然显示正确了,但是依然提示上面的错误,后来又在一个git的issue界面看到说直接配置为C.UTF-8就可以了,于是改为下面这样

export LAN=C.UTF-8
export LC_ALL=C.UTF-8
export LC_LANG=zh_CN.UTF-8

#重新加载bashrc
source ~/.bashrc

再启动就可以了,完全不用配置java的启动环境变量,Centos下可能需要配置/etc/sysconfig/i18n,流程基本上都差不多。

结束

最近在捣鼓统信的系统,基本上都是基于centos的,可是自己偏偏喜欢用debian,没办法,看来还要学习一下centos的部分配置了。

java linux
Theme Jasmine by Kent Liao