本文转载自:http://linux-wiki.cn/wiki/zh-hans/Java%E7%A8%8B%E5%BA%8F%E4%B8%AD%E6%96%87%E5%AD%97%E4%BD%93%E9%85%8D%E7%BD%AE

非常感谢 Linux Wiki用户Chenxing 和 lzh
 
配置文件位置

JRE的字体配置文件存放在:

# 显示当前系统中Java字体配置文件名称:
echo $JAVA_HOME/jre/lib/fontconfig.properties 如果这个文件不存在,可以从fontconfig.properties.src复制一个:
# 本文后续的所有命令可能需要root权限,请自行添加sudo
cp $JAVA_HOME/jre/lib/fontconfig.properties.src $JAVA_HOME/jre/lib/fontconfig.properties
 
# 有些系统中该文件是只读的……
chmod +w $JAVA_HOME/jre/lib/fontconfig.properties

为了避免受当前fontconfig配置文件的影响,备份并移除所有bfc文件:

mkdir $JAVA_HOME/jre/lib/bfcbak/
mv $JAVA_HOME/jre/lib/*.bfc $JAVA_HOME/jre/lib/bfcbak/

准备字体

首先请确定要使用的字体

如:simsun.ttc

建议将想用的字体文件复制(或创建符号链接)到$JAVA_HOME/jre/lib/fonts,后面的配置会简单一点。

获取字体定义

到存放有字体文件的文件夹,如$JAVA_HOME/jre/lib/fonts,运行下述命令[2][3]

# Make font scale
mkfontscale
 
# 寻找文件中含有iso10646的行(对应Unicode类的编码)
grep 10646 fonts.scale

会看到这样的一些行:

simsun.ttc -misc-simsun-medium-r-normal--0-0-0-0-p-0-iso10646-1

请复制相应字体对应的行备用。

修改配置文件

打开配置文件,如$JAVA_HOME/jre/lib/fontconfig.properties,并对其进行如下操作:

在version=1后面加入一行:

allfonts.chinese-arphic1=-misc-simsun-medium-r-normal--0-0-0-0-p-0-iso10646-1

如果原来文件中还有设置allfonts.chinese-arphic1的,就把它们注释掉。

指明字体路径

如果已经把字体复制到$JAVA_HOME/jre/lib/fonts,可以略过此步。否则须在配置文件中加上字体文件的完整路径,以宋体为例:

filename.-misc-simsun-medium-r-normal--0-0-0-0-p-0-iso10646-1=simsun.ttc的完整路径

修改字体搜索序列

在配置文件中查找sequence.allfonts,如果其后的sequence开头的行中有chinese-arphics1,可以略过此步,否则在其后面加入一行:

sequence.fallback=chinese-arphic1

解决字显示不清晰的问题

有时看到英文显示有锯齿,有时看到中文字边缘不清,这可能都与字体反锯齿的设置不当有关。可以在/etc/profile~/.bashrc末尾加入:[5]

export _JAVA_OPTIONS='-Dawt.useSystemAAFontSettings=lcd'

其中的lcd也可改为gasp,但效果较好的常是lcd。

Linux 中文乱码问题解决的更多相关文章

  1. Ubuntu下Eclipse中文乱码问题解决(转)

    Ubuntu下Eclipse中文乱码问题解决 把Windows下的工程导入到了Linux下Eclipse中,由于以前的工程代码,都是GBK编码的(Windows下的Eclipse 默认会去读取系统的编 ...

  2. 180606-Linux下jdk中文乱码问题解决

    文章链接:https://liuyueyi.github.io/hexblog/2018/06/06/180606-Linux下jdk中文乱码问题解决/ linux下jdk中文乱码问题解决 之前遇到过 ...

  3. Arch Linux中文乱码解决

    Arch Linux中文乱码解决 1.安装中文字体 pacman -S wqy-zenhei ttf-fireflysung (flash乱码)   ---乱码的原因就是缺少中文字体的支持,下载文泉驿 ...

  4. WingIDE中文乱码问题解决方法

    WingIDE中文乱码问题解决方法 安装完WingIDE后,首次运行python脚本时,若脚本中含有UTF-8中文,在Debug I/O输出框中,全部变成了乱码. 这时其实我们设置下WingIDE的编 ...

  5. ubuntu mysql emma中文乱码问题解决

    ubuntu mysql emma中文乱码问题解决 emma默认用apt-get 安装的话,emma是不支持中文的,配置文件或直接修改emma程序源文件(python). apt-get安装emma ...

  6. Spring MVC3返回JSON数据中文乱码问题解决(转)

    Spring MVC3返回JSON数据中文乱码问题解决 查了下网上的一些资料,感觉比较复杂,这里,我这几使用两种很简单的办法解决了中文乱码问题. Spring版本:3.2.2.RELEASE Jack ...

  7. 【转】asp.net Cookie值中文乱码问题解决方法

    来源:脚本之家.百度空间.网易博客 http://www.jb51.net/article/34055.htm http://hi.baidu.com/honfei http://tianminqia ...

  8. soapUI参数中文乱码问题解决方法 (groovy脚本中文乱码)

    soapUI参数中文乱码问题解决方法 可能方案1: 字体不支持中文,将字体修改即可: file-preferences-editor settings-select font 修改字体,改成能显示中文 ...

  9. oracle中文乱码问题解决

    中文乱码问题解决:1.查看服务器端编码select userenv('language') from dual;我实际查到的结果为:AMERICAN_AMERICA.ZHS16GBK2.执行语句 se ...

随机推荐

  1. HDU 5047 Sawtooth(大数模拟)上海赛区网赛1006

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5047 解题报告:问一个“M”型可以把一个矩形的平面最多分割成多少块. 输入是有n个“M",现 ...

  2. 写给喜欢用Block的朋友(ios Block)

    作者:fengsh998原文地址:http://blog.csdn.net/fengsh998/article/details/38090205转载请注明出处如果觉得文章对你有所帮助,请通过留言或关注 ...

  3. [HDU3709]Balanced Number

    [HDU3709]Balanced Number 试题描述 A balanced number is a non-negative integer that can be balanced if a ...

  4. ubuntu: NO_PUBKEY 8D5A09DC9B929006

    最近使用ubuntu16.04时,运行 sudo apt-get update 时出现如下错误: W: GPG error: http://archive.ubuntukylin.com:10006/ ...

  5. div 加滚动条

    div 加滚动条的方法: <div style="position:absolute; height:400px; overflow:auto"></div> ...

  6. Units Problem: How to read text size as custom attr from xml and set it to TextView in java code

    Here is this topic’s background: I defined a custom View which extends FrameLayout and contains a Te ...

  7. php搜索分页

    最近做搜索分页的时候,发现第一页显示正常,点击到下一页的时候,显示结果变成了搜索全部内容. 仔细查看代码,发现当第一次输入关键词,提交到查询控制器的时候,表单提交的关键字不为空,可是点击到下一页的时候 ...

  8. json_decode()和json_encode()的使用方法

    json_decode对JSON格式的字符串进行编码 json_encode对变量进行 JSON 编码 JS中对JSON的解析 一.JSON字符串转换为JSON对象     要运用上面的str1,必须 ...

  9. td的title属性

    今天才知道html元素td还有一个title属性,就是一个tooltip的东西,即当你把鼠标放在td上面的时候,会弹出一个提示语,这个提示语就是td的title. 把td的文本赋值给title: ht ...

  10. Linux下多网卡同网段多IP网络分流设定方法

    Linux下多网卡同网段多IP网络分流设定方法 -- :: 标签:Linux下多网卡同网段多IP网络分流设定方法 当服务器需要较高的网络流量时,在其它资源不造成瓶颈的情况下无疑会用到多网卡. 第1选项 ...