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的,请教下各位大大是什么原因?是服务器配置问题还是代码问题?
查看一下系统的编码吧,设置成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构造图片时无法处理中文的主要内容,如果未能解决你的问题,请参考以下文章