Linux下JDK中文字体乱码

转载 2015年07月09日 14:50:27

资源来源:链接,Linux下java的Swing/AWT程序乱码解决

问题描述:

部署在linux下的java应用程序中的中文会变成一个一个的“口”字,也就是乱码

 

问题分析:

代码中使用了如下的实现方式:

[java] view plaincopy
  1. new java.awt.Font("宋体", Font.PLAIN, 12)  

那么jdk中一定需要“宋体”这个字体($JAVA_HOME/jre/lib/fonts目录下)

由于JDK默认没有中文字体,所以就会显示为乱码

需要手工设置一下,让java应用程序能够找到所需的中文字体

 

解决方式:
将需要的字体文件上传至$JAVA_HOME/jre/lib/fonts目录下,重启tomcat即可(所需的字体可在window系统下找到,以window 7为例:字体保存在C:\Windows\Fonts路径下)




  问题描述:
    我编写的JAVA程序中的Swing/AWT组件中的中文显示都是方框,而标题却能正常显示中文,且使用   System.out.println("中文字符串")能正常显示中文;
    解决思路:
    可能是JRE的中文字库不支持引起,所以添加一个可以支持的中文字库
    解决办法:
    第一步:下载中文字库,我使用的是simsun.ttc,可以直接在Windows(我用的是XP的系统)中找到,入径为C:\WINDOWS\Fonts下的simsun.ttc
    也可以在网站上下载 推荐天网网站:
    http://file.tianwang.com/cgi-bin/search?word=simsun.ttc

    第二步:将中文字库simsun.ttc放入Jre的字库中,操作如下:
    cd <JAVA_HOME>/lib/fonts或者cd <JAVA_HOME>/jre/lib/fonts
    mkdir fallback (fallback代表存放后备语言的文件夹)
    其中<JAVA_HOME>是你安装jdk/jre的路径,我的是/usr/lib/jdk1.5。复制或者链接一个中文字体至其下:
    ln -s /usr/share/fonts/truetype/simsun.ttf /usr/lib/jdk1.5/jre/lib/fonts/fallback/simsun.ttf

    第三步:有了上面的步骤之后,就可以在代码中编码实现显示中文了,操作如下:
    在main 函数中的开头处添加如下代码:
                Font f =  new Font("宋体",Font.PLAIN,12);
                UIManager.put("Label.font",f);
                UIManager.put("Label.foreground",Color.black);
                UIManager.put("Button.font",f);
                UIManager.put("Menu.font",f);
                UIManager.put("MenuItem.font",f);
                UIManager.put("List.font",f);
                UIManager.put("CheckBox.font",f);
                UIManager.put("RadioButton.font",f);
                UIManager.put("ComboBox.font",f);
                UIManager.put("TextArea.font",f);
                UIManager.put("EditorPane.font",f);
                UIManager.put("ScrollPane.font",f);
                UIManager.put("ToolTip.font",f);
                UIManager.put("TextField.font",f);
                UIManager.put("TableHeader.font",f);
                UIManager.put("Table.font",f);

    以上代码代表了在整个程序中的相关组件都使用定义好"f"字体,从而就不会存在中文乱码了,也省却了对所有组件单独设置的麻烦。

Linux下JDK中文字体乱码

资源来源:链接 问题描述: 部署在linux下的java应用程序中的中文会变成一个一个的“口”字,也就是乱码   问题分析: 代码中使用了如下的实现方式: [java] view p...
  • ying890
  • ying890
  • 2015年01月06日 17:32
  • 1801

Linux下Java中文字体不显示(解决图像中文乱码问题)

在Java中可以使用如下判断支持的字体 GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironm ent(...
  • SJshenjian
  • SJshenjian
  • 2017年01月31日 19:32
  • 1865

Win7系统上查看TexLive2015可访问的中文字体

在使用XeLaTex编写含中文的文档时,需要知道究竟哪些系统中文字体TeXLive2015能够访问。我是在Win7上面安装的TexLive2015。任意打开一个console程序,在其中输入:fc-l...
  • RobertChenGuangzhi
  • RobertChenGuangzhi
  • 2015年10月08日 12:13
  • 1698

java基础之安装JDK出现乱码问题

javac编译产生乱码的解决办法   2008-08-30 20:37:16|  分类: 百度日志|举报|字号 订阅      ...
  • u012960536
  • u012960536
  • 2015年06月30日 21:43
  • 1627

linux安装中文字体

一、查看系统字体 在开始安装之前,我们先查看系统中已经安装的字体。 要查看系统中已经安装的字体,我们可以使用fc-list命令进行查看。如果系统中没有该命令的话,我们需要先安装相关的软件包。 在...
  • xiongshengwu
  • xiongshengwu
  • 2016年12月16日 18:47
  • 527

Linux下Java中文字体不显示(解决图像中文乱码问题)

在Java中可以使用如下判断支持的字体 GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironm ent();...
  • cover1231988
  • cover1231988
  • 2017年06月22日 11:18
  • 382

web开发中文字符乱码解决集合文

相信每个人再刚刚开始学习接触web开发时都会遇到一个问题,没错那就是中文字符乱码的问题,其实我们都知道只要统一设置了字符的编码就不会出现这种问题,但往往在一些细节上我们还是容易忽视因此产生了这样的问题...
  • Baple
  • Baple
  • 2016年02月15日 14:23
  • 1022

Kali Linux 字体配置

0. 准备工作 安装gnome-tweak-tool。 aptitude install gnome-tweak-tool安装文泉驿相关字体。 aptitude install ttf-wqy...
  • okingniko
  • okingniko
  • 2015年05月19日 12:06
  • 5804

关于java 向图片添加文字时的乱码问题

由服务器对图片文字进行合成,前断都好好的
  • pretendcool
  • pretendcool
  • 2014年06月13日 11:01
  • 5291

idea 中文乱码 & fedora 25安装字体

idea git乱码 & fedora 25安装字体问题描述 由于团队都在使用idea我这个linux爱好者,肯定也要在我心爱的linux上面装一个IDEA,但是有乱码问题,四处百度,谷歌发现都是 f...
  • l_eaf_
  • l_eaf_
  • 2017年06月03日 09:44
  • 381
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Linux下JDK中文字体乱码
举报原因:
原因补充:

(最多只允许输入30个字)