乱码问题之中文字体
在部署集智数据平台时,linux操作系统或unix操作系统,有时会有中文乱码的情况。
这可能是操作系统中,没有安装中文字体。
当售前工程师在问系统管理员是否安装了中文字体时,一般得到的答案都是说已经安装了中文字体。
售前工程师怎么样来确定操作系统里安装了中文字体呢,在系统中访问一下这个jsp页面,看结果就可以了。
enum_font.jsp
<%@ page language=”java” pageEncoding=”GBK”%>
<jsp:directive.page import=”java.awt.GraphicsEnvironment”/>
<%
GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
String[] fontNames= ge.getAvailableFontFamilyNames();
%>
<!– 列出当前服务器安装的字体 –>
<html>
<head>
</head>
<body style=”font-size: 14px”>
当前Java环境支持的字体列表
<dir>
<%
for(int i=0;i<fontNames.length;i++)
out.println(“<li>”+fontNames[i]);
%>
</dir>
</body>
</html>
访问得到的结果,如下图:
结果中没有中文字体的,则操作系统中是没有安装中文字体的,安装一下中文字体,乱码问题就解决了。
附安装中文字体的方法:
方法一、拷贝中文字体:
1、 在启动java的时候加入如下参数,参数值为jdk的安装路径 -Dsun.java2d.fontpath=……/j2se/jre/lib/fonts
2、 操作系统安装完整的中文安装包,然后把操作系统的中文字体文件拷贝到……/j2se/jre/lib/fonts目录下
3、 打开……/j2se/jre/lib目录下的font.properties文件,把新添加的字体文件的对照信息加进该文件即可
4、 重起webserver
方法二、安装中文包:
1、 操作系统安装完整的中文安装包
2、 卸载jdk,重新安装,让jdk读取新的中文字体文件