Linux环境下BufferedImage Graphics drawString 中文乱码解决方法

在linux环境下的,生成的带文字的图片在前台一直显示为方框乱码,windows环境正常。

img.setFont(new Font("宋体", Font.BOLD, 20));

写中文进入图片之前必须设置字体,而且这个字体必须支持中文,否则就会出现乱码或者方框、问号等等。

BufferedImage在内存创建的图像调用的是服务器端的字体,所以在img.drawString(str, x, y);时,如果服务器端找不到对应的中文字体,那么它就识别不了,最后写入图片的中文就变成了乱码、方框、问号等等了。

在这里可以有两种方法添加服务器端的中文支持:

第一种方法,添加系统中文字体(宋体):

[email protected]:~# cd /usr/share/fonts

[email protected]:/usr/share/fonts# mkdir winFonts

[email protected]:/usr/share/fonts# cp /home/dragon/Desktop/simsun.ttc winFonts

[email protected]:/usr/share/fonts# cd winFonts

[email protected]:/usr/share/fonts/winFonts# mkfontdir

[email protected]:/usr/share/fonts/winFonts# mkfontscale

第二种方法,添加jre中文字体(宋体):

[email protected]:~# cd /usr/lib/jvm/java-6-sun/jre/lib/fonts

[email protected]:/usr/lib/jvm/java-6-sun/jre/lib/fonts# cp /home/dragon/Desktop/simsun.ttc .

修改完必须重启服务器才有效。

时间: 11-13

Linux环境下BufferedImage Graphics drawString 中文乱码解决方法的相关文章

win7下zend studio5.5中文乱码解决方法

win7下zend studio5.5中文乱码解决方法 1.打开 C:Documents and SettingsAdministratorZDEconfig_5.5desktop_options.xml(这个地址要根据自己的电脑而定.) 2.查找 editing.encoding 3.修改里面为 <encoding name=”UTF-8″/> 4.保存,并将该文件属性设置为只读,否则zend每次启动都会将 desktop_options.xml 初始化 5.重启 zend 注意,你现在打开

Qt在Linux环境下应用程序字体模糊的解决方法(先改成使用默认字体,然后使用qtconfig配置)

这两天一直在用Qt实现一个跨平台的软件.软件之前在Windows上编写的,后来放到里Ubuntu 10.10下编译.程序运行时遇到一个很棘手的问题,界面文本非常模糊.后来在网上查阅了好几天的资料,经历了无数次实验,最终解决了这一问题.下面以一个Demo程序来重现这一问题. 本文中的编译平台为:Ubuntu 10.10 x86版, g++ 4.4.5, Qt 4.7.3自己编译的 首先看看我的Demo程序文本模糊时的截图: 一个软件界面的文本要是这样子,根本无法接受. 有人说要通过qtconfig

在Linux环境下mysql的root密码忘记解决方法

mysql版本不同,修改密码的方法大同小异,但是有一定的区别: mysql5.1 1.首先确认服务器出于安全的状态,也就是没有人能够任意地连接MySQL数据库. 2.修改MySQL的登录设置:# vi /etc/my.cnf在[mysqld]的段中加上一句:skip-grant-tables 保存并且退出 3.重新启动mysqld service mysqld restart 4.登录并修改MySQL的root密码 mysql> USE mysql ;mysql> UPDATE user SE

***在Linux环境下mysql的root密码忘记解决方法(三种)-推荐第三种

MySQL密码的恢复方法之一 1.首先确认服务器出于安全的状态,也就是没有人能够任意地连接MySQL数据库. 因为在重新设置MySQL的root密码的期间,MySQL数据库完全出于没有密码保护的 状态下,其他的用户也可以任意地登录和修改MySQL的信息.可以采用将MySQL对外的端口封闭,并且停止Apache以及所有的用户进程的方法实现服务器的准安全状态.最安全的状态是到服务器的Console上面操作,并且拔掉网线. 2.修改MySQL的登录设置: ? 1 # vi /etc/my.cnf 在[

Linux环境下mysql的root密码忘记解决方法

1.首先确认服务器出于安全的状态,也就是没有人能够任意地连接MySQL数据库. 因为在重新设置MySQL的root密码的期间,MySQL数据库完全出于没有密码保护的 状态下,其他的用户也可以任意地登录和修改MySQL的信息.可以采用将MySQL对外的端口封闭,并且停止Apache以及所有的用户进程的方法实现服务器的准安全状态.最安全的状态是到服务器的Console上面操作,并且拔掉网线.2.修改MySQL的登录设置: vi /etc/my.cnf 在[mysqld]的段中加上一句:skip-gr

Xshell下VI打开文件中文乱码解决

修改 /etc/sysconfig/i18n 成如下值:LANG="zh_CN.utf8"LANGUAGE="zh_CN.utf8"SUPPORTED="zh_CN.utf8:zh_CN.GB18030:zh_CN:zh:en_US.UTF8:en_US:en"SYSFONT="lat0-sun16" 保存退出后,重新连接,连接编码也选utf-8即可 Xshell下VI打开文件中文乱码解决,布布扣,bubuko.com

[转]mysql导入导出数据中文乱码解决方法小结

本文章总结了mysql导入导出数据中文乱码解决方法,出现中文乱码一般情况是导入导入时编码的设置问题,我们只要把编码调整一致即可解决此方法,下面是搜索到的一些方法总结,方便需要的朋友. linux系统中 linux默认的是utf8编码,而windows是gbk编码,所以会出现上面的乱码问题. 解决mysql导入导出数据乱码问题 首先要做的是要确定你导出数据的编码格式,使用mysqldump的时候需要加上--default-character-set=utf8, 例如下面的代码: 代码如下: mys

记一次Maven发布Jar包中文乱码解决方法

Maven deploy 乱码 今天使用Maven发布Jar包时,发布功能都是正常的也成功上传到了仓库,就是项目跑越来后出中文中现了乱码: { "code": "SUCCESS", "success": true, "message": "鎿嶄綔鎴愬姛", "data": [ { "key": "app_force_login", "va

Codeblocks中文乱码解决方法。

Codeblocks中文乱码解决方法: 特别提示:出现中文乱码情况才执行以下操作,未出现请勿随意修改!!!! 打开Codeblocks -> 设置 -> 编辑器: 然后点击 Encoding settings -> 选择编码 -> 选择UTF-8 -> 确定: 点击设置 -> 编译器: 点击Other compiler options - > 在空白处输入 -finput-charset=UTF-8 -fexec-charset=GBK 点击确定 -> 随意