linux服务器jdk1.7下使用ImageIO.write构造图片时无法处理中文

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux服务器jdk1.7下使用ImageIO.write构造图片时无法处理中文相关的知识,希望对你有一定的参考价值。

如题,相关代码如下:
BufferedImage image = new BufferedImage(imageWidth, imageHeight, BufferedImage.TYPE_INT_BGR);
Graphics graphics = image.getGraphics();
graphics.fillRect(0, 0, imageWidth, imageHeight); //先用白色填充整张图片,也就是背景
graphics.setColor(Color.BLACK); // 设置文字的颜色
graphics.drawString(“测试22”, 50, 70);
FileOutputStream fos = new FileOutputStream(“E:\e.png”);

ImageIO.write(image, "png", fos);//输出jpg图片
graphics.dispose(); // 释放资源
fos.close();

我本地是win7系统,jdk是1.6的,图片可以正常生成,中文也可以正常展示,但是在linux服务器上生成的图片只展示22两个字符,测试两个字没有展示出来,也没有乱码,服务器上jdk是openjdk1.7的,请教下各位大大是什么原因?是服务器配置问题还是代码问题?

中文通常都是Linux的编码问题
查看一下系统的编码吧,设置成UTF-8应该就可以了
另外,你的代码也要设置成UTF-8
或者两这都设置成一样的,UTF-8或者GBK
参考技术A 一般情况下,WINDOWS可以正常生成汉字但是在LINUX上不可以,这是由于LINUX上没有中文字体库的原因,可以尝试在LINUX上安装对应的字体库。或者将字体库引入到你的项目中去

在linux环境下安装JDK并配置环境变量

操作步骤如下

1.根据linux服务器的系统版本在官网下载相应linux版本JDK(32位下载x86,64位下载x64)

2.通过远程连接工具(filezilla)将下载好的JDK上传至linux服务器某个目录下

3.使用tar命令将jdk解压至当前目录

4.配置jdk环境变量

修改/etc目录下的profile文件,在文件最后增加JAVA_HOME,JRE_HOME,PATH等环境变量

export JAVA_HOME=/usr/local/jdk1.7.0_79
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib:$CLASSPATH
export PATH=/sbin:$JAVA_HOME/bin:$PATH

5.配置好环境变量后,用source命令使配置文件生效

source  profile

6.测试JDK是否安装配置成功

[root@localhost jdk1.7.0_79]# java -version
java version "1.7.0_79"
Java(TM) SE Runtime Environment (build 1.7.0_79-b15)
Java HotSpot(TM) 64-Bit Server VM (build 24.79-b02, mixed mode)

以上是关于linux服务器jdk1.7下使用ImageIO.write构造图片时无法处理中文的主要内容,如果未能解决你的问题,请参考以下文章

linux下JDK1.7安装

linux(centos7)下安装jdk1.7

小记Linux下安装JDK1.7

linux 下安装 jdk1.7

Linux下安装JDK1.7

Linux下安装jdk1.7